home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-09-14 | 188.6 KB | 5,336 lines |
- %% file : gentle_intro.tex
- %% Thanks for your interest in A Gentle Introduction to TeX.
- %% Any comments on this manual would be appreciated. These may
- %% be typesetting, English, or TeX criticisms. If you decide to
- %% translate this document into another language, I'd appreciate
- %% receiving a copy.
- %%
- %% This file is a complete TeX input file. Just run it
- %% through TeX and print out the resulting "DVI" file. If you are
- %% familiar with TeX, the macros at the top of the file have a few
- %% switches which you may want to set. If you have problems or
- %% can't run TeX at all, write to me and I'll send you a hard copy.
- %%
- %% You should feel free to photocopy and/or distribute this manual.
- %% My only request is that it remain in one piece and not be chopped
- %% up. The only machine dependent section (#1.2) may need to be
- %% rewritten for your local site, of course.
- %%
- %%% Michael Doob
- %% Department of Mathematics
- %% The University of Manitoba
- %% Winnipeg, Manitoba R3T 2N2
- %% Canada
- %% mdoob@uofmcc (bitnet)
- %% mdoob@ccu.umanitoba.ca (internet)
- %%
- %% Here is a character listing to check to be sure that no
- %% unwanted translations took place within the bowels of the net.
- %% Upper case letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ
- %% Lower case letters: abcdefghijklmnopqrstuvwxyz
- %% round parentheses, square brackets, curly braces: () [] {}
- %% Exclaim, at, sharp, dollar, percent: ! @ # $ %
- %% Caret, ampersand, star, underscore, hyphen: ^ & * _ -
- %% vertical bar, backslash, tilde, backprime, plus: | \ ~ ` +
- %% plus, equal, prime, quote, colon: + = ' " :
- %% less than, greater than, slash, question, comma: < > / ? ,
- %% period, semicolon: . ;
- %%
- %%
- %%
- %% Now here come the macros used in this manual. If you are already
- %% already familiar with TeX, you may want to fiddle with them.
- %% In particular, the hooks are left to generate a new control
- %% word index and table of contents if you change section 1.2.
- %%
- %% Updated 01/04/90
-
-
-
- %%%%%%%% Here are the fonts other than the sixteen defined in %%%%%%%%
- %%%%%%%%%%%%% plain.tex that are used %%%%%%%%%%%%%%%%%%
-
- %%%% first, choose between amr or cmr fonts %%%
- \newif \ifamrfonts
- \amrfontsfalse % use this line if you use the cmr fonts
- %\amrfontstrue % use this line if you use the old armfonts
-
- \ifamrfonts \font\brm=amr10 scaled \magstep1
- \else \font\brm=cmr10 scaled \magstep1 \fi
- \ifamrfonts \font\halfrm=amr10 scaled \magstephalf
- \else \font\halfrm=cmr10 scaled \magstephalf \fi
- \ifamrfonts \font\bbrm=amr10 scaled \magstep2
- \else \font\bbrm=cmr10 scaled \magstep2 \fi
- \ifamrfonts \font\bbbrm=amr10 scaled \magstep3
- \else \font\bbbrm=cmr10 scaled \magstep3 \fi
- \ifamrfonts \font\bbbbrm=amr10 scaled \magstep4
- \else\font \bbbbrm=cmr10 scaled \magstep4 \fi
- \ifamrfonts \font\bbbbbrm=amr10 scaled \magstep5
- \else \font\bbbbbrm=cmr10 scaled \magstep5 \fi
- \ifamrfonts \font\sf = amssmc10
- \else \font\sf = cmss10 \fi
- \ifamrfonts \font\chapfont=ambx10 scaled \magstep2
- \else \font\chapfont=cmbx10 scaled \magstep2 \fi
- \ifamrfonts \font\secfont=ambx10 scaled \magstep1
- \else \font\secfont=cmbx10 scaled \magstep1 \fi
- \ifamrfonts \font\sc= amcsc10
- \else \font\sc= cmcsc10 \fi
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%\vbadness=10000 %%%%%% I don't want to hear about underfull vboxes
- \raggedbottom %%%%% delete this line for aligned page bottoms
- \hsize=5.5in
- \vsize=7in
- \voffset=.75in
- \parskip=\baselineskip
- \widowpenalty=1000 \clubpenalty=1000 %%% I hate widows and orphans! %%%
-
- %%%%%%%%% choosing between Canadian and American spellings %%%%%%%%%
- \newif \ifcanspell
- \canspelltrue %%%% Canadian spelling
- \canspellfalse %%% use this line for American spelling
-
- \def\aesthetic{\ifcanspell \ae{}sthetic\else esthetic\fi}
- \def\analogue{\ifcanspell analogue\else analog\fi}
- \let\analog=\analogue
- \def\cancelled{\ifcanspell cancelled\else canceled\fi}
- \let\canceled=\cancelled
- \def\centimetre{\ifcanspell centimetre\else centimeter\fi}
- \let\centimeter=\centimetre
- \def\centre{\ifcanspell centre\else center\fi}
- \let\center=\centre
- \def\centred{\ifcanspell centred\else centered\fi}
- \let\centered=\centred
- \def\our{\ifcanspell our\else or\fi}
- \def\postcode{\ifcanspell postalcode\else zipcode\fi}
- \def\province{\ifcanspell province\else state\fi}
- \def\theatre{\ifcanspell theatre\else theater\fi}
- \let\theater=\theatre
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%%%%%%%%%%%%%%%%%%%% headline routines %%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \def\gentleheadline{%
- \vbox {\hrule%
- \line {\strut \vrule \quad \tenrm A \TeX{} intro
- \ifcanspell (Canadian \else (U.S. \fi spelling)
- \hfil
- \ifnum \secnum > 0 Section \the\secnum: \fi \sectiontitle \quad
- \vrule}%
- \hrule}%
- }
-
- \newif \iftitlepage \titlepagetrue
- \headline=
- {\iftitlepage \hfil \global\titlepagefalse \else \gentleheadline \fi}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- %%%%%%%%%%%%%%%%%%%% define contents and index files %%%%%%%%%%%%%%%%%%%%%%
- %%% Normally the contents and index are hard coded into the input file. %%%
- %% To generate new ones, use \writingcontentstrue and \writingindextrue. %%
-
- \newif \ifwritingcontents
- \newif \ifwritingindex
- \newwrite\contents \newwrite\index
-
- \writingcontentsfalse \writingindexfalse
- %%% \writingcontentstrue %%% use this line to make the contents
- %%% \writingindextrue %%% use this line to make the index
-
- \ifwritingcontents \openout\contents=contents.tex \fi
- \ifwritingindex \openout\index=index.tex
- \def\toindex#1{\immediate\write\index{#1 \the\pageno}}
- \else \def\toindex#1{} \fi
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- %%%%%%%%%%%%%%%%%%%% determine whether answers are printed %%%%%%%%%%%%%%%%
- \newif \ifwritinganswers
- \writinganswersfalse %%% use this line to suppress answer section
- \writinganswerstrue %%% use this line to include answer section
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- %%%%%%%%%%%%%%%% footnote macro with counter %%%%%%%%%%%%
- \newcount\footnotenum \footnotenum=0
- \def\fnote#1{\advance \footnotenum by 1%
- \footnote{$^{\the\footnotenum}$}{#1}}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
- %%%%%%%%%%%%%%%% exercise, section, and subsection macros %%%%%%%%%%%%
- \newcount\exno %%%%%% counter for exercises %%%%%%%%
- \newcount\secnum \secnum=0 %%%% counter for section numbers %%%%
- \newcount\subsecnum
-
- \def\section#1{
- \vfill\eject %%%%% new section starts on a new page
- %%%\ifodd\pageno \else\ \vfill\eject \fi %start on an odd page
- \advance\secnum by 1 \subsecnum=0 \exno=0
- \ifnum \secnum = 1 \pageno=1 \fi
- \ifnum \secnum > 0
- \leftline{\chapfont Section \the\secnum}
- \vskip 3pt \fi
- \leftline{\chapfont #1}
- \def\sectiontitle{#1}
- \vskip\baselineskip
- \hrule
- \vskip 1cm
- \ifwritingcontents \write\contents{\string\line\string{#1
- \string\dotfill{}
- \ifnum \pageno < 0 \romannumeral-\pageno
- \else \the\pageno \fi
- \string}}\fi
- \titlepagetrue}
-
- \def\subsection#1{\advance\subsecnum by 1
- \vskip 30pt
- \leftline{\secfont \the\secnum .\the\subsecnum\ #1}
- \nobreak
- \ifwritingcontents
- \write\contents{\string\line\string{\string\qquad{}#1
- \string\dotfill{} \the\pageno\string}}\fi
- }
-
- \def\exercise{\global\advance \exno by 1
- \vskip\baselineskip
- \noindent $\triangleright$ Exercise \the\secnum.\the\exno\quad
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %% definitions of control sequences for characters in the typewriter font %%%
- %%%% for short phrases this is easier than using a literal construction %%%%
- \def\\{\char92{}} %%%%% backslash %%%%%
- \def\lb{\char'173{}} %%%%% left brace %%%%%
- \def\rb{\char'175{}} %%%%% right brace %%%%%
- \def\sp{\char32{}} %%%%% special space symbol %%%%%
-
- \def\beginliteral{
- \vskip\baselineskip
- \begingroup
- \tt
- \obeylines
- %{\obeyspaces\global\let =\ }
- \catcode`\@=0
- \parskip=0pt\parindent=0pt
- \catcode`\$=12\catcode`\&=12\catcode`\^=12\catcode`\#=12
- \catcode`\_=12\catcode`\~=12
- \def\par{\leavevmode\endgraf}
- \catcode`\{=12\catcode`\}=12\catcode`\%=12\catcode`\\=12
- }
-
- \def\endliteral{\endgroup}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
- %%%%%%%%%%%%%% inhibit hyphenation of typewriter text %%%%%%%%%%%%%%
- \hyphenchar\tentt=-1
-
-
- %%%%%%%%%%%% grouping to make input listing in typewriter type %%%%%%%
- \def\beginuser{\vskip\parskip
- \everypar={\nobreak}
- \begingroup
- \tt \obeylines \parskip=0pt \parindent=0pt}
-
- \def\enduser{\endgroup}
-
-
- %%%%%%%%%%% macro to construct tables (easily) %%%%%%%%%%%%%%%%
- %%% parameters: title goes between brackets, rest of the
- %%% paragraph is the table
- \def\maketable[#1]#2\par{
- \setbox1=\vbox{#2}
- $$\vbox{
- \hbox to \wd1{\bf \hss #1 \hss}
- \vskip 12pt
- \box1
- }
- $$
- }
- %%%%%%%%%%% end of macro to construct tables %%%%%%%%%%%%%%%%
-
-
-
- %%%%%%%%%%% macro to put a box around the text %%%%%%%%%%%%%%%%
- \def\makebox#1#2#3% vsize, hsize, inserted text
- {\hbox{\vrule
- \vbox to #1{\hrule \vss
- \hbox to #2{\hss#3\hss}\vss
- \hrule}\vrule}}
-
- \def\displaytext#1{$$\hbox{#1}$$}
-
- \def\LaTeX{{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em
- T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
-
- \def\AMSTeX{{$\cal A$}\kern-.1667em\lower.5ex\hbox
- {$\cal M$}\kern-.125em{$\cal S$}-\TeX}
-
-
- %%%%%%%%%%%% macro to put TeX references in right margin %%%%%%%%
- \newdimen\theight
- \def \TeXref#1{%
- \vadjust{\setbox0=\hbox{\sevenrm\quad\quad\TeX book: #1}%
- \theight=\ht0
- \advance\theight by \dp0 \advance\theight by \lineskip
- \kern -\theight \vbox to \theight{\rightline{\rlap{\box0}}%
- \vss}%
- }}%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- \def\version{1.0}
-
- %%%%%%%%%%%% macro to write the date out the date and time %%%%%%%%%%%
- %%%%%%%%%%%% TeXbook p. 406 for date %%%%%%%%%%%
- \def\today{\ifcase\month\or January\or February\or March\or April\or
- May\or June\or July\or August\or September\or October\or November\or
- December\fi \space\number\day, \number\year}
-
- \newcount\hour \newcount\minute
- \hour=\time \divide \hour by 60
- \minute=\time
- \loop \ifnum \minute > 59 \advance \minute by -60 \repeat
- \def\writetime{\ifnum \hour<13 \number\hour:% % supresses leading 0's
- \ifnum \minute<10 0\fi% % so add it it
- \number\minute
- \ifnum \hour < 12 \ A.M. \else \ P.M. \fi
- \else \advance \hour by -12 \number\hour:% % supresses leading 0's
- \ifnum \minute<10 0\fi% % add it in
- \number\minute \ P.M. \fi}
-
- \def\datestamp{\vfill
- \rightline{\sevenrm Gentle Intro \version{} run through \TeX{}
- on \today{} at \writetime}}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- \titlepagetrue
- {\nopagenumbers
- \def\sectiontitle{Introduction}
- \topinsert \vskip 6 cm \endinsert
- \centerline{\chapfont A Gentle Introduction to \TeX{}}
- \vskip 15 pt
- \centerline{\secfont A Manual for Self-study}
- \vskip 3cm
- \leftline{Michael Doob}
- \leftline{Department of Mathematics}
- \leftline{The University of Manitoba}
- \leftline{Winnipeg, Manitoba, Canada R3T 2N2}
- \vskip\baselineskip
- \leftline{MDOOB@UOFMCC.BITNET}
- \leftline{MDOOB@CCU.UMANITOBA.CA}
-
- \vfill\eject
- \titlepagetrue.
- \vfill\eject
- }
- \secnum=-2 \pageno=-1
-
- \section{Introduction}
-
- First the bad news: \TeX{} is a large and complicated program that
- goes to extraordinary lengths to produce attractive typeset material.
- This very complication can cause unexpected things to happen at times.
- Now the good news: straightforward text is very easy to typeset using
- \TeX\null. So it's possible to start with easier text and work up to
- more complicated situations.
-
- The purpose of this manual is to start from the very beginning and
- to move towards these more complicated situations. No previous knowledge
- of \TeX{} is assumed. By proceeding a section at a time, greater
- varieties of text can be produced.
-
- Here are a few suggestions: there are some exercises in each
- section. Be sure and do them! The only way to learn \TeX{} is
- by using it. Better yet, experiment on your own; try to make
- some variations on the exercises. There is no way that you can
- damage the \TeX{} program with your experiments. You can find a
- complete answer to most exercises by looking at the \TeX{} source
- file that was used to produce this document. You'll notice that
- there are references in the right margin to {\bf The \TeX
- book}\fnote{Addison Wesley, Reading,Massachusetts, 1984, ISBN
- 0-201-13488-9}\null. When you feel that you want more
- information on a topic, that's where to look.
-
- Incidently, there are a few fibs that appear in this manual;
- they are used to hide complications (I look at this as something
- like poetic license). As you become more experienced at using
- \TeX{}, you'll be able to find them.
-
- \TeX{} is a public domain program that is available for no license
- fee. It was developed by Donald Knuth at Stanford University as
- a major project.
- In the profit-oriented market place,
- the program would certainly cost many thousands of dollars. The
- \TeX{} Users Group (TUG) is a nonprofit organization which distributes
- copies of \TeX{}, updates software, and gives information about
- new developments in both hardware and software in its publications
- TUGboat and \TeX niques. Joining this users group is inexpensive;
- please consider doing so. The address is:
- \vskip\baselineskip
- \centerline{\TeX{} Users Group}
- \centerline{P.O. Box 9506}
- \centerline{Providence, RI 02940}
- \centerline{U.S.A.}
-
- This manual would not have come into being without the aid of others.
- In particular the proofreading and suggestions of the following
- people have been invaluable:
- \begingroup
- \frenchspacing
- Waleed A.~Al-Salam (University of Alberta),
- Debbie L.~Alspaugh (University of California),
- Nelson H.~F.~Beebe (University of Utah),
- Barbara Beeton (American Mathematical Society),
- Bart Childs (Texas A.~\&~M\null. University),
- Mary Coventry (University of Washington),
- Dimitrios Diamantaras (Temple University),
- Roberto Dominimanni (Naval Underwater Systems Center),
- Victor Eijkhout (University of Nijmegen),
- Moshe Feder (St. Lawrence University),
- Josep~M.~Font (Uviversidad Barcelona),
- Jonas de Miranda Gomes
- (Instituto de Matematica Pura e Aplicada - Brazil),
- Rob Gross (Boston College),
- Klaus Hahn (University of Marburg),
- Anita Hoover (University of Delaware),
- J\"urgen Koslowski (Macalester College),
- Kees van der Laan (Rijksuniversiteit Groningen),
- John Lee (Northrop Corporation),
- Silvio Levy (Princeton University),
- Robert Messer (Albion College),
- Emily H.~Moore (Grinnell College),
- Young Park (University of Maryland),
- Craig Platt (University of Manitoba),
- David Roberts (Colorado),
- Kauko Saarinen (University of Jyv\"askyl\"a),
- Jim Wright (Iowa State University),
- and
- Dominik Wujastyk (Wellcome Institute for the History of Medicine).
- \endgroup
-
- In addition several people have sent me parts or all of their local
- manuals. I have received a few others on the rebound.
- In particular
- \begingroup
- \frenchspacing
- Elizabeth Barnhart (TV Guide),
- Stephan v.~Bechtolsheim (Purdue University),
- Nelson H.~F.~Beebe (University of Utah)
- and Leslie Lamport (Digital Equipment Corporation),
- Marie McPartland-Conn and Laurie Mann (Stratus Computer),
- Robert Messer (Albion College),
- Noel Peterson (Library of Congress),
- Craig Platt (University of Manitoba),
- Alan Spragens (Stanford Linear Accelerator Center, now of Apple Computers),
- Christina Thiele (Carleton University),
- and Daniel M.~Zirin (California Institute of Technology)
- \endgroup
- have written various types of lecture notes that have been most helpful.
-
- \vfill \eject
- \section{Contents}
-
- \line{Introduction \dotfill{} i}
- \line{Contents \dotfill{} iii}
- \line{1.~Getting Started \dotfill{} 1}
- \line{\qquad{}1.1 What \TeX{} is and what \TeX{} isn't \dotfill{} 1}
- \line{\qquad{}1.2 From \TeX{} file to readable output,
- the big set up \dotfill{} 2}
- \line{\qquad{}1.3 Let's do it! \dotfill{} 4}
- \line{\qquad{}1.4 \TeX{} has everything under control \dotfill{} 7}
- \line{\qquad{}1.5 What \TeX{} won't do \dotfill{} 8}
- \line{2.~All characters great and small \dotfill{} 9}
- \line{\qquad{}2.1 Some characters are more special than others \dotfill{} 9}
- \line{\qquad{}2.2 Typesetting with an accent \dotfill{} 10}
- \line{\qquad{}2.3 Dots, dashes, quotes,
- $\textfont0=\tenbf \mathinner {\ldotp \ldotp \ldotp }$ \dotfill{} 13}
- \line{\qquad{}2.4 Different fonts \dotfill{} 15}
- \line{3.~The shape of things to come \dotfill{} 19}
- \line{\qquad{}3.1 Units, units, units \dotfill{} 19}
- \line{\qquad{}3.2 Page shape \dotfill{} 20}
- \line{\qquad{}3.3 Paragraph shape \dotfill{} 22}
- \line{\qquad{}3.4 Line shape \dotfill{} 26}
- \line{\qquad{}3.5 Footnotes \dotfill{} 27}
- \line{\qquad{}3.6 Headlines and footlines \dotfill{} 28}
- \line{\qquad{}3.7 Overfull and underfull boxes \dotfill{} 29}
- \line{4.~$\Bigl\{$Groups, $\bigl\{$Groups,
- $\{$and More Groups$\}\bigr\}\Bigr\}$ \dotfill{} 31}
- \line{5.~No math anxiety here! \dotfill{} 33}
- \line{\qquad{}5.1 Lots of new symbols \dotfill{} 33}
- \line{\qquad{}5.2 Fractions \dotfill{} 37}
- \line{\qquad{}5.3 Subscripts and superscripts \dotfill{} 38}
- \line{\qquad{}5.4 Roots, square and otherwise \dotfill{} 39}
- \line{\qquad{}5.5 Lines, above and below \dotfill{} 39}
- \line{\qquad{}5.6 Delimiters large and small \dotfill{} 40}
- \line{\qquad{}5.7 Those special functions \dotfill{} 41}
- \line{\qquad{}5.8 Hear ye, hear ye! \dotfill{} 42}
- \line{\qquad{}5.9 Matrices \dotfill{} 43}
- \line{\qquad{}5.10 Displayed equations \dotfill{} 45}
- \line{6.~All in a row \dotfill{} 48}
- \line{\qquad{}6.1 Picking up the tab \dotfill{} 48}
- \line{\qquad{}6.2 Horizontal alignment with more sophisticated patterns
- \dotfill{} 51}
- \line{7.~Rolling your own \dotfill{} 55}
- \line{\qquad{}7.1 The long and short of it \dotfill{} 55}
- \line{\qquad{}7.2 Filling in with parameters \dotfill{} 57}
- \line{\qquad{}7.3 By any other name \dotfill{} 60}
- \line{8.~To err is human \dotfill{} 62}
- \line{\qquad{}8.1 The forgotten bye \dotfill{} 62}
- \line{\qquad{}8.2 The misspelled or unknown control sequence \dotfill{} 62}
- \line{\qquad{}8.3 The misnamed font \dotfill{} 64}
- \line{\qquad{}8.4 Mismatched mathematics \dotfill{} 64}
- \line{\qquad{}8.5 Mismatched braces \dotfill{} 65}
- \line{9.~Digging a little deeper \dotfill{} 68}
- \line{\qquad{}9.1 Big files, little files \dotfill{} 68}
- \line{\qquad{}9.2 Larger macro packages \dotfill{} 69}
- \line{\qquad{}9.3 Horizontal and vertical lines \dotfill{} 70}
- \line{\qquad{}9.4 Boxes within boxes \dotfill{} 72}
- \line{10.~Control word list \dotfill{} 77}
- \ifwritinganswers
- \line{11.~I get by with a little help\dotfill{} 80}
- \fi
-
-
-
- \section{Getting Started}
-
- \subsection{What \TeX{} is and what \TeX{} isn't}
-
- First of all, let's see what steps are necessary to produce a
- document using \TeX\null. The first step is to type the file
- that \TeX{} reads. This is usually called the \TeX{} file or the
- input file, and it can be created using a simple text editor (in
- fact, if you're using a fancy word processor, you have to be sure
- that your file is saved in ASCII or nondocument mode without any
- special control characters). The \TeX{} program then reads your
- input file and produces what is called a DVI file (DVI stands for
- DeVice Independent). This file is not readable, at least not by
- humans. The DVI file is then read by another program (called a
- device driver) that produces the output that is readable by
- humans\TeXref{23}. Why the extra file? The same DVI file can be
- read by different device drivers to produce output on a dot
- matrix printer, a laser printer, a screen viewer, or a
- phototypesetter. Once you have produced a DVI file that gives
- the right output on, say, a screen viewer, you can be assured
- that you will get exactly the same output on a laser printer
- without running the \TeX{} program again.
-
- The process may be thought of as proceeding in the following way:
- $$
- {\hbox{edit text\quad} \atop \longrightarrow}
- \lower .6cm \makebox{1.5cm}{1.8cm}%
- {\vbox{\hbox{\TeX{}}
- \hbox{input}
- \hbox{file}
- }%
- }%
- {\hbox{\quad \TeX{} program\quad} \atop \longrightarrow}
- \lower .6cm \makebox{1.5cm}{1.8cm}%
- {\vbox{\hbox{DVI}
- \hbox{file}}
- }%
- {\hbox{\quad device driver\quad} \atop \longrightarrow}
- \lower .6cm \makebox{1.5cm}{1.8cm}%
- {\vbox{\hbox{readable}
- \hbox{output}}
- }%
- $$
-
- This means that we don't see our output in its final form when it
- is being typed at the terminal. But in this case a little
- patience is amply rewarded, for a large number of symbols not
- available in most word processing programs become available. In
- addition, the typesetting is done with more precision, and the
- input files are easily sent between different computers by
- electronic mail or on a magnetic medium.
-
- Our focus will be on the first step, that is, creating the \TeX{}
- input file and then running the \TeX{} program to produce
- appropriate results. There are two ways of running the \TeX{}
- program; it can be run in batch mode or interactively. In
- batch mode you submit your \TeX{} input file to your computer;
- it then runs the \TeX{} program without further intervention and
- gives you the result when it is finished. In interactive mode
- the program can stop and get further input from the user, that
- is, the user can interact with the program. Using \TeX{}
- interactively allows some errors to be corrected by the user,
- while the \TeX{} program makes the corrections in batch mode as
- best it can. Interactive is the preferred mode, of course. All
- personal computer and many mainframe implementations are
- interactive. On some mainframes, however, the only practical
- method of running \TeX{} is in batch mode.
-
-
- \subsection{From \TeX{} file to readable output, the big set up}
- \vskip\baselineskip
-
- {\parskip = 0pt \noindent
- [Note from MD:
- {\sl This is the only system dependent section in the manual and
- may be replaced by a local guide. No reference is made to it
- outside of the section itself. The following local information
- should be included:
- \item{$\bullet$} What initial steps, if any, should be taken by the reader
- to permit the running of \TeX{} and your local device driver(s).
- \item{$\bullet$} How to run \TeX\null.
- \item{$\bullet$} How to read the log file.
- \item{$\bullet$} How to preview and/or print the dvi file.
-
- The following sample is applicable here at the University of
- Manitoba. We use a locally written editor (MANTES) on an
- Amdahl running MVS; I'm fairly certain that it's the worst possible case.}]
- }
-
-
- In this section we'll see how to run \TeX{} at the University of
- Manitoba. It is assumed that the reader is familiar with MANTES
- and can create text files using it.
-
- First, there are several things that must be done {\bf one time
- only}. To start you must do the following (you type in the
- material that looks like typewriter type):
- \item{(1)} allocate the files that \TeX{} will use by typing the
- following lines (while in MANTES):
- \itemitem{} C: {\tt alloc da=source.tex format=vb,256,6144}
- \itemitem{} C: {\tt alloc da=dvi format=fb,1024,6144}
-
- \item{(2)} Create a file called RUNTEX in your MANTES aggregate
- containing the following JCL:
-
- \beginuser
- // JOB ,'RUN TEX'
- // EXEC TEXC
- //SRC DD DSN=<userid>.SOURCE.TEX,DISP=SHR
- //DVI DD DSN=<userid>.DVI,DISP=OLD
- \enduser
-
-
- The name {\tt <userid>} is replaced by your own user id, of
- course. The use of upper case and the spaces must be followed
- exactly.
-
- \item{(3)} Create a file called PRINTTEX in your MANTES aggregate
- containing the following JCL:
-
- \beginuser
- // JOB ,'PRINT TEX'
- // EXEC TEXP
- //DVIFILE DD DSN=<userid>.DVI,DISP=SHR
- \enduser
-
-
- Once you have completed these three steps, you are ready to run a
- \TeX{} job. The files you have created will allow you to produce
- about ten pages of ordinary text.
-
- Here are the steps you use {\bf each time you run a job}.
-
- \item{(1)} create a MANTES file containing your \TeX{} input.
- \item{(2)} save and submit your file using the commands
- \itemitem{} C: {\tt save f/l to da=source.tex noseq}
- \itemitem{} C: {\tt submit runtex}
- \item{(3)} when you get a message saying that your job is finished,
- enter the command
- \itemitem{} C: {\tt out <jobname>; list ttyout}
-
- In this command, {\tt <jobname>} is replaced by your user id with
- a dollar sign appended. This file listing will tell you of any
- errors that might have occurred. It is an abbreviated version of
- what is called the ``log file''; we will use the term ``log
- file'' to refer to the ttyout file produced by \TeX\null.
-
- If you want, you can check on the status of your job while it is
- executing by using the command
- \itemitem{} C: {\tt q <jobname>}
-
- When you are finished looking at the log file, the command {\tt
- end scratch} will throw away the log file while the command {\tt
- end release} will send the log file to the printer, and it can
- then be picked up with your \TeX{} output.
-
- \item{(4)} when your output from RUNTEX program is error free, \TeX{}
- will have created a legal DVI file. To print it, use the
- command
- \itemitem{} C: {\tt submit printtex nohold}
-
- As in (3), you can check on the status of your job while it is
- executing.
- \item{(5)} Pick up your output at the I/O window, sixth floor
- Engineering building. It usually takes about twenty minutes for the
- output to be ready. Ask for it by ``{\tt <jobname>}''.
-
- The files created are large enough for running \TeX{} jobs of about
- 10 pages. A job of that size will take about one second of CPU time
- to run through \TeX\null. It will take about 15 seconds of CPU time to
- print 10 pages on the Xerox 8600 using the current device driver.
-
- You can print your own copy of this manual using the command
- {\tt \%docu tex}. You can also find lots of other useful
- online information about \TeX{} by using {\tt \%texinfo}.
-
- \subsection{Let's do it!}
-
- So, from our viewpoint, the name of the game is to create the \TeX{}
- file that produces the right readable output. What does
- a \TeX{} file look like? It consists of characters from an
- ordinary terminal, that is, upper and lower case letters,
- numbers, and the usual punctuation and accent characters (these
- are the usual ASCII characters). Text, for the most part, is just
- typed normally. Special instructions usually start with one of a
- few special symbols such as {\tt \#} or {\tt \&} (these will be
- described in more detail later). Here is an example of a \TeX{}
- input file:
-
- \beginuser
- Here is my first \\TeX\\ sentence.
- \\bye
- \enduser
- \toindex{TeX{} } \toindex{ }
-
-
- First note that the characters in this example look like
- typewriter type. We use these characters with all examples that
- are meant to be typed from the computer terminal. Second, note
- that the backslash appears three times in the text. We'll soon
- see that this is one of the special symbols mentioned
- previously, and it is used very frequently when making \TeX{}
- documents. Make a file containing this example. Use the \TeX{}
- program to make a DVI file and a device driver to see what you
- have produced. If all goes well, you'll have a single page with
- the following single sentence:
-
- Here is my first \TeX\ sentence.
-
- There will also be a page number at the bottom of the page. If
- you've gotten this far, congratulations! Once you can produce one
- \TeX{} document, it's just a matter of time before you can do
- more complicated ones. Now let's compare what we typed in with
- what we got out. The straightforward words were just typed in
- normally, and \TeX{} set them in ordinary type. But the word ``\TeX'',
- which can't be typed in on a terminal because the letters
- aren't on the same line, is entered by using a word starting with
- a backslash, and \TeX{} made the proper interpretation. Most
- symbols that are not ordinary letters, numbers, or punctuation
- are typeset by entering a word starting with a backslash. If we
- look a little closer, we'll note that the word ``first'' is also
- changed.
- \TeXref{4}
- The first two letters have been joined together and there isn't
- a separate dot over the letter ``i''. This is standard
- typesetting practice: certain letter combinations are joined up
- to form what are called {\sl ligatures}. There is actually a good
- \aesthetic{} reason for this. Compare the first two letters of
- ``first'' and ``{f}irst'' to see the difference. We note that
- {\tt \\bye} appears in the input file with no corresponding word
- in the final copy.
- \toindex{bye}
- This a typesetting instruction that tells \TeX{} that the input
- is finished. We'll learn about lots of different typesetting
- instructions as we go along.
-
- Let's look at the log file that was created when we ran \TeX
- \null. It may vary slightly at your site, but should look
- something like this:
- \beginuser
- 1.
- 2. This is TeX, MVS Version 2.9 (no format preloaded)
- 3. ** File PLAIN.FMT <-- DD=FMTLIB MEM=PLAIN
- 4.
- 5. ** File SRC.TEX <-- DD=SRC
- 6. (src.tex [1]
- 7. Output written on DVI (1 page, 256 bytes).
- 8. Transcript written on TEXLOG.
- \enduser
-
-
- This is the file that will contain any error messages. On line 6,
- {\tt (src.tex\ } indicated that \TeX{} has started reading that
- file. The appearance of {\tt [1]} indicates that page 1 has been
- processed. If there were errors on page 1, they would be listed
- at that point.
-
- \vskip .5cm
- \exercise Add a second sentence to your original \TeX{} file to get:
- \beginuser
- Here is my first \\TeX\\ sentence.
- I was the one who typeset it!
- \\bye
- \enduser
-
- Use \TeX{} and look at your output. Is the second sentence on a
- new line?
-
-
- \exercise Now add this line to the beginning of your file:
- \beginuser
- \\nopagenumbers
- \enduser
- \noindent
- Guess what will happen when you run the new file through
- \TeX\null. Now try it and see what happens.
- \toindex{nopagenumbers}
-
- \exercise Add three or four more sentences to your file.
- Use letters, numbers, periods, commas, question marks,
- and exclamation points, but don't use any other symbols.
-
-
- \exercise Leave a blank line and add some more sentences.
- You can now get new paragraphs.
- \medskip
-
- We have now seen a major principle concerning the preparation of
- \TeX{} input files. The placement of the text on your computer
- terminal does not necessarily correspond to the placement of the
- text on your output. You can not, for example, add space between
- words in your output by adding spaces in your input file. Several
- consecutive spaces and one space will produce exactly the same
- output. As would be expected, a word at the end of one line will
- be separated from the first word of the following line. In fact,
- sometimes when working on a file that will be heavily edited, it
- is convenient to start each sentence on a separate line. Spaces
- at the beginning of a line, however, are always ignored.
-
- \exercise Add the following sentence as a new paragraph, and then
- typeset it:
- \beginuser
- Congratulations! You received a grade of 100\% on your latest
- examination.
- \enduser
- \noindent
- The {\tt\%} sign is used for comments in your input file.
- Everything on a line following this symbol is ignored. Notice
- that even the space that normally separates the last word on one
- line from the first word on the next line is lost. Now put a
- backslash in front of the {\tt\%} sign to correct the
- sentence. \toindex{\$} \toindex{\%}
-
- \exercise Add the following sentence as a new paragraph:
- \beginuser
- You owe me \$10.00 and it's about time you sent it to me!
- \enduser
- \noindent
- This will produce an error in your log file (if your
- implementation of \TeX{} is interactive, that is, sends you
- messages and waits for answers, just hit the carriage return or
- enter key when you get the error message). You will get output,
- but not what you might expect. Look at the log file and see
- where the error messages are listed. Don't worry about the
- actual messages. We'll have a lot more to say about errors
- (including this one) later. Now fix the error by putting a
- backslash in front of the {\tt \$} sign, and typeset the result
- (there are a small number of characters like the per cent and
- dollar signs that \TeX{} uses for its own purposes. A table of
- these characters will be provided shortly).
-
- \subsection{\TeX{} has everything under control}
-
- We have seen that the backslash has a special role. Any word
- starting with a backslash will be given a special interpretation
- when \TeX{} reads it from your input file. Such a word is called
- a {\sl control sequence}. There are, in fact, two types of
- control sequences: a {\sl control word\/} is a backslash followed
- by letters only (for example, {\tt \\TeX}) and a {\sl control
- symbol\/} is a backslash followed by a single nonletter (for
- example, {\tt \\\$})\null. Since a space is a nonletter, a
- backslash followed by a space is a legitimate control symbol.
- \TeXref{7--8}
- When we want to emphasize that a space is present, we will use a
- special symbol {\tt\sp} to indicate the space, as in the control
- symbol {\tt\\\sp}. This convention is used in {\bf The \TeX
- book} as well as in this manual.
-
- When \TeX{} is reading your input file and comes to a backslash
- followed by a letter, it knows that a control word is being
- read. So it continues reading the name of the control word until
- a nonletter is read. So if your file contains
-
- \displaytext{\tt I like \\TeX!}
-
- \noindent
- the control word {\tt \\TeX} is terminated by the exclamation
- point. But this presents a problem if you want to have a space
- after a control word. If you have, for example, the sentence
-
- \displaytext{\tt I like \\TeX and use it all the time.}
-
- \noindent
- in your input file, the control word {\tt\\TeX} is terminated by
- the space (which is, of course, a nonletter). But then you won't
- have a space between the words ``\TeX{}'' and ``and''; inserting
- more spaces won't help, since \TeX{} doesn't distinguish between
- one space and several consecutive spaces. But if you put the
- control symbol {\tt\\\sp} after a control word, you will both
- terminate the control word and insert a space. It's really easy
- to forget to put in something like {\tt\\\sp} after a control
- word. I promise you that you will do it at least once while
- you're learning to use \TeX\null.
-
- \exercise Make an input file that will produce the following
- paragraph:
-
- I like \TeX! Once you get the hang of it, \TeX{} is really easy
- to use. You just have to master the \TeX nical aspects.
-
- Most control words are named so as to give a hint of their uses.
- You can use {\tt \\par} to make a new paragraph, for example,
- instead of putting in a blank line.
- \toindex{par}
-
- \subsection{What \TeX{} won't do}
-
- \TeX{} is very good at setting type, but there are things that \TeX{}
- can't do well. One is making figures. Space can be left
- to insert figures, but there are no graphic procedures built into
- the language (at present). Some implementations allow graphic
- instructions to be inserted using the {\tt \\special} control
- word but these are exceptional and definitely site dependent.
-
- \TeX{} sets type in horizontal straight lines and not in
- straight lines at other angles. In particular, it is generally
- not possible to make insertions in ``landscape mode'', that is,
- with the text rotated by so that the baseline is parallel with
- the long edge of the paper, or to include text that has a curve for
- a baseline. Perspective type (gradually increasing or
- decreasing in height) is not handled well by \TeX\null.
-
- We have seen that there is an ``edit, \TeX{}, driver'' cycle that
- is necessary for each different copy of output. This is true
- even when the output device is a terminal. In particular, it's
- not possible to type the input file and see the results on the
- screen immediately without going through the full cycle. Some
- implementations have both text and graphics displays with
- reasonably quick turnaround (a few seconds for a single page); as
- hardware becomes less expensive and processors become faster, we
- may see improvement.
-
-
-
-
-
-
- \section{All characters great and small}
-
- \subsection{Some characters are more special than others}
-
- We saw in the last section that most text is entered at the
- terminal as sentences of ordinary words just as when typing with
- a typewriter. But we also saw that, in particular, the backslash
- could be used for at least two different purposes. It can be
- used for symbols (or combinations of symbols) that don't appear
- on the keyboard such as typing {\tt \\TeX} to get \TeX\null. It
- can also be used to give \TeX{} special instructions such as
- typing {\tt \\bye} to indicate the end of the input file. In
- general, a word starting with a backslash will be interpreted by
- \TeX{} as one requiring special attention. There are several
- hundred words that \TeX{} knows, and you can define more
- yourself, and so the backslash is very important. We'll spend a
- lot of time as we proceed learning some of these words;
- fortunately we'll only need to use a small number of them most of
- the time.
-
- There are ten characters which, like the backslash, are used
- by \TeX{} for special purposes, and we now want to give the
- complete list.
- \TeXref{37--38}What if we want to use a sentence with one of these
- special characters in it? With this in mind we'll ask the following
- questions:
- \item{(1)} What are the different special characters?
- \item{(2)} How do we use a special character if we really want to
- typeset it in our text?
-
- Here is a table of each special character, its purpose, and the
- method of typesetting the special character itself if you need
- it:
-
-
- \maketable [Characters requiring special input]
- \halign{
- \strut \hfil#\hfil & \quad # \hfil & \quad\tt # \hfil\cr
- \bf Character & \bf Purpose & \bf Input for literal output \cr
- \noalign{\hrule} \noalign{\smallskip}
- $\backslash$ & Special symbols and instructions & \$\\backslash\$ \cr
- $\{$ & Open group & \$\\\lb\$ \cr
- $\}$ & Close group & \$\\\rb\$ \cr
- \% & Comments & \\\% \cr
- \& & Tabs and table alignments & \\\& \cr
- \~{} & Unbreakable space & \\\~{}\lb\rb \cr
- \$ & Starting or ending math text & \\\$ \cr
- \^{} & Math superscripts & \\\^{}\lb\rb \cr
- \_{} & Math subscripts & \\\_{}\lb\rb \cr
- \# & Defining replacement symbols & \\\# \cr
- }
-
- \toindex{\lb}
- \toindex{\rb}
- \toindex{\%}
- \toindex{\&}
- \toindex{\~{}}
- \toindex{\$}
- \toindex{\^{}}
- \toindex{\_{}}
- \toindex{\#}
-
- \subsection{Typesetting with an accent}
-
- Now we're going to start using some of \TeX{}'s goodies! So far
- we've just been using \TeX{} to make our output look attractive,
- but now we'll start to do things that are difficult or impossible
- on the typewriter. In particular, we're going to look at accents
- now. How do you produce an accent when the symbol doesn't appear on
- the keyboard? Just as with the symbol \TeX{}, it is necessary to
- enter a word starting with a backslash. For the word ``premi\`ere'',
- as a first example, you need to type in {\tt premi\\`ere}
- (you may have to hunt around to find the ``back prime''
- or ``grave'' symbol {\tt `} on your keyboard, but it's there
- somewhere\fnote{If you have a very old or obscure
- keyboard and the back prime is {\it really\/} not there, you can
- use {\tt \\lq\lb\rb} instead. Similarly {\tt \\rq\lb\rb} can be
- used for the symbol {\tt '}. You can think of the symbols as
- being abbreviations for ``left quote'' and ``right quote.'' In
- addition, {\tt \\lq\\lq\lb\rb} and {\tt \\rq\\rq\lb\rb} give the
- usual quotation marks. But this won't work as a method to produce
- an accent over the following letter, so you're really better off
- with a proper keyboard.}). In general, to put an accent
- on a letter, the appropriate control sequence precedes the letter.
-
- Here are some examples:
- $$\vbox{
-
- \halign{
- \strut \hfil\tt # & \quad # \hfil\cr
- \bf \TeX{} input & \bf \TeX{} output \cr
- \noalign{\hrule} \noalign{\smallskip}
- \\`a la mode & \`a la mode \cr
- r\\'esum\\'e & r\'esum\'e \cr
- soup\\c{\sp}con & soup\c con \cr
- No\\"el & No\"el \cr
- na\\"\\i{\sp}ve & na\"\i ve \cr
- }
- }$$
-
-
- We see several principles illustrated by these examples. Most
- accents are produced by using a control symbol with a similar
- shape. A few of them are produced by control words containing a
- single letter. Some care must be used in this case, for a space
- must be used to terminate the control word. If you have {\tt
- soup\\ccon} in your file, for example, \TeX{} will look for the
- control word {\tt\\ccon}\fnote{We'll see that there is another
- method when we look at the grouping concept in Section~4.}.
- \TeXref{52--53}
-
- Notice that there is a control word {\tt\\i} also. This produces
- the letter ``i'' without the dot over it; this allows an accent
- to be put over the lower part of the letter. There is an
- analogous control word {\tt\\j} that produces a dotless ``j''
- for accenting purposes.
-
- \maketable [Accents that may be immediately followed by a letter]
- \halign{
- \strut \hfil # & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
- \bf Name & \bf \TeX{} input & \bf \TeX{} output \cr
- \noalign{\hrule} \noalign{\smallskip}
- grave & \\`o & \`o \cr
- acute & \\'o & \'o \cr
- circumflex & \\\^{}o & \^o \cr
- umlaut/dieresis/tr\'emat & \\"{}o & \"o \cr
- tilde & \\\~{}o & \~o \cr
- macron & \\={}o & \=o \cr
- dot & \\\char'056{}o & \.o \cr
- }
-
- \toindex{`}
- \toindex{'}
- \toindex{\^{}}
- \toindex{"}
- \toindex{i}
- \toindex{j}
- \toindex{=}
- \toindex{.}
-
- \maketable [Accents requiring an intervening space]
- \halign{
- \strut \hfil # \hfil & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
- \bf Name & \bf \TeX{} input & \bf \TeX{} output \cr
- \noalign{\hrule} \noalign{\smallskip}
- cedilla & \\c o & \c{o} \cr
- underdot & \\d o & \d{o} \cr
- underbar & \\b o & \b{o} \cr
- h\'a\v{c}ek & \\v o & \v{o} \cr
- breve & \\u o & \u{o} \cr
- tie & \\t oo & \t oo \cr
- Hungarian umlaut& \\H o & \H{o} \cr
- }
-
- \toindex{c}
- \toindex{d}
- \toindex{b}
- \toindex{v}
- \toindex{u}
- \toindex{t}
- \toindex{H}
-
- \TeX{} also allows some letters from languages other than English to
- be typeset.
-
- \maketable [A\kern-1pt vailable foreign language symbols]
- \halign{
- \strut \hfil # \hfil & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
- \bf Example& \bf \TeX{} input & \bf \TeX{} output \cr
- \noalign{\hrule} \noalign{\smallskip}
- \AE gean, \ae sthetics & \\AE, \\ae & \AE, \ae \cr
- \OE uvres, hors d'\oe uvre & \\OE \\oe & \OE, \oe \cr
- \AA ngstrom & \\AA, \\aa & \AA, \aa \cr
- \O re, K\o benhavn & \\O, \\o & \O, \o \cr
- \L odz, \l\'odka & \\L, \\l & \L, \l \cr
- Nu\ss & \\ss & \ss \cr
- ?`Si? & {?}{`} & ?` \cr
- !`Si! & {!}{`} & !` \cr
- Se\~nor & \\\~{} & \~{} \cr
- & \lb\\it\\\$\rb & {\it\$} \cr
- }
-
- \toindex{AE}
- \toindex{ae}
- \toindex{OE}
- \toindex{oe}
- \toindex{AA}
- \toindex{aa}
- \toindex{O}
- \toindex{o}
- \toindex{L}
- \toindex{l}
- \toindex{ss}
-
- Typeset the sentence in each of the following exercises:
-
- \exercise Does \AE schylus understand \OE dipus?
-
- \exercise The smallest internal unit of \TeX{} is about 53.63\AA.
-
- \exercise They took some honey and plenty of money wrapped up in a
- {\it \$}5 note.
-
- \exercise \'El\`eves, refusez vos le\c cons! Jetez vos cha\^\i nes!
-
- \exercise Za\v sto tako polako pijete \v caj?
-
- \exercise Mein Tee ist hei\ss.
-
- \exercise Peut-\^etre qu'il pr\'ef\`ere le caf\'e glac\'e.
-
- \exercise ?`Por qu\'e no bebes vino blanco? !`Porque est\'a avinagrado!
-
- \exercise M\'\i\'\j n idee\"en worden niet be\"\i nvloed.
-
- \exercise Can you take a ferry from \"Oland to \AA land?
-
- \exercise T\"urk\c ce konu\c san ye\u genler nasillar?
-
-
- \def\bdots{$\textfont0=\tenbf \ldots$} %%% boldface version of \ldots
-
- \subsection{Dots, dashes, quotes, \bdots}
-
- Typing has always been a compromise: the small number of keys
- (compared to the number of typeset symbols available) has forced
- some changes on the typist. When preparing material using \TeX{},
- there is no need to be so restricted. In this section we'll look
- at some differences between typing and using \TeX\null.
-
- There are four types of dashes that are used. The hyphen is used
- for combining words into one unit as with mother-in-law.
- \TeXref{3--5}
- The en-dash is used to indicate a sequence of page numbers, years
- or such things. The em-dash is a grammatical symbol. The minus
- sign is used for negative numbers. Here they are with their uses:
-
- \maketable [Different types of dashes]
- \halign{
- \strut \hfil # \hfil & \quad \hfil \tt # \hfil & \hfil \quad # \hfil
- & \hfil # \hfil\cr
- \bf Name& \bf \TeX{} input & \bf \TeX{} output & \bf Example\cr
- \noalign{\hrule} \noalign{\smallskip}
- hyphen & - & - & The space is 3-dimensional. \cr
- en-dash & {-}{-} & -- & Read pages 3--4. \cr
- em-dash & {-}{-}{-} & --- & I saw them---there were 3 men alive. \cr
- minus sign & \$-\$ & $-$ & The temperature dropped to $-$3 degrees. \cr
- }
-
- \exercise I entered the room and---horrors---I saw both my
- father-in-law and my mother-in-law.
-
- \exercise The winter of 1484--1485 was one of discontent.
- \bigskip
-
-
- Another difference between typing and using \TeX{} is the use of
- quotation marks. Opening and closing quotation marks are the
- same on a typewriter. They are produced in \TeX{} by using the
- apostrophe or prime key {\tt '} and backprime key {\tt `}\null.
- An open quote is produced by {\tt ``} and the
- close quote by {\tt ''}\null.\TeXref{3} Similarly the
- opening single quote is produced by {\tt `} and the closing
- single quote by {\tt '}\null. Notice that there is no need
- to use the usual typing quotation mark (it normally gives a close
- quote, but don't count on it).
-
- \exercise His ``thoughtfulness'' was impressive.
-
- \exercise Frank wondered, ``Is this a girl that can't say `No!'?''
- \bigskip
-
- Sometimes ellipses (three dots) are used to indicate a passage
- of time or missing material. Typing three periods will give
- three dots very close together. The dots with proper spacing will
- be produced by having {\tt \\dots} in your input file.
- \TeXref{173}
- \toindex{dots}
-
- \exercise He thought, ``\dots and this goes on forever, perhaps to the
- last recorded syllable.''
-
- Another problem with dots is that the period after an
- abbreviation normally has less space after it than does the
- period at the end of a sentence. There are two ways to solve this
- problem: the dot can be followed by either {\tt\\\sp} or {\tt\~{}}
- to change the spacing.
- \TeXref{91--92}
- The second alternative will give an unbreakable space; when such
- a space is between two words, these words must typeset on the
- same line. The input {\tt Prof.\~{}Knuth} would cause those two
- words to be typeset on one line. This is desirable for names
- like Vancouver, B.~C. and Mr.~Jones so that ``Mr.'' and ``Jones''
- do not end up on separate lines. Notice that no backslash is used
- with the unbreakable space.
-
- \exercise Have you seen Ms.~Jones?
-
- \exercise Prof.~Smith and Dr.~Gold flew from
- \ifcanspell
- Halifax N.~S. to Montr\'eal, P.~Q. via Moncton, N.~B.
- \else
- L.~A. to Washington, D.~C., via Fargo, N.~D.
- \fi
-
-
- \subsection{Different fonts}
-
- The most obvious difference between typewritten text and \TeX{}
- output is undoubtedly the different fonts or types of symbols
- used. When \TeX{} starts up it has sixteen fonts available. Some
- of these are used for technical purposes, but even so there are
- several different typefaces available as can be seen in the
- following table. A complete list of the sixteen fonts is given in
- Appendix F of {\bf The \TeX{}book}.
- \TeXref{427--432}
- Most of them are used automatically; a mathematical subscript,
- for example, is put in smaller type by \TeX{} with no special
- user intervention.
-
- To change from the usual (roman) typeface to italic, the control
- word {\tt \\it} is used. To change back to the usual roman
- typeface, use {\tt \\rm}. For example, you could have the
- following sentence: {\tt I started with roman type, \\it switched
- to italic type, \\rm and returned to roman type}. This would give
- the following: I started with roman type, \it switched to italic
- type,\fnote{Notice that the comma and this footnote are in
- italic type, and this looks a little funny. We'll see that there
- is another method for changing fonts when we talk about grouping
- in Section 4.}
- \rm and returned to roman type.
-
- Typefaces other than italic are also available. Those given below
- are the ones most commonly used. They are available immediately
- when \TeX{} starts. A little later we'll see how to use other
- typefaces that aren't available when \TeX{} starts.
-
- \global\advance\footnotenum by 1
- \maketable [Font Samples]
- \halign{
- \strut \hfil # \hfil & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
- \bf Font name & \bf \TeX{} switch sequence & \bf Sample of typeface \cr
- \noalign{\hrule} \noalign{\smallskip}
- Roman & \\rm & \rm This is roman type. \cr
- Boldface & \\bf & \bf This is boldface type. \cr
- Italic & \\it & \it This is italic type. \cr
- Slanted & \\sl & \sl This is slanted type. \cr
- Typewriter & \\tt & \tt This is typewriter type. \cr
- Math symbol${}^\the\footnotenum$ & \\cal & $\cal SOME\hbox{\quad}SCRIPT
- \hbox{\quad}LETTERS$\rm. \cr
- }
-
- \footnote{}{\llap{$^\the\footnotenum$}%
- This example is cheating since you need to know a little about
- mathematics input to use it, but I wanted to include it anyway.
- You'll be able to use these letters after you study the use of
- mathematical symbols.}
- \nobreak
- \toindex{it}
- \toindex{rm}
- \toindex{bf}
- \toindex{sl}
- \toindex{tt}
-
- The slanted and italic fonts seem quite similar at first. It is
- easy to see the difference between the letter ``a'' in each
- sample. When changing from a slanted or italic font to a roman
- font, the last letter in the first font will lean towards the
- first letter of the roman font; this looks cramped, and to
- compensate there is a little extra space that can be added called
- the {\sl italic correction}. This is done using the control
- symbol {\tt \\/}.
- \toindex{/}
- In the following sentence, there is no italic correction after
- the first sequence of italic letters but there is after the
- second sequence; see the difference: {\it If} the italic
- correction is not used the letters are too close together, but
- {\it if\/} the correction is used, the spacing is better. There
- is no need for the italic correction when the italic characters
- are followed by a comma or a period, but your text will
- definitely look better if you use it before quotation marks or
- parentheses.
-
-
- It is possible to use fonts other than those initially defined in
- \TeX{} when desired (assuming that they are available on
- your computer system, of course). Different sizes can be used
- with the aid of the control word {\tt \\magstep}. To define your
- new font you will have to know its name on your computer system.
- For example, the roman typeface is called ``cmr10'' on most
- systems. If you use {\tt \\font\\bigrm = cmr10 scaled \\magstep
- 1}, you can then use {\tt\\bigrm} in exactly the same way as you
- use {\tt\\it} or {\tt\\rm}.
- \TeXref{13--17}
- \toindex{magstep}
- \toindex{font}
- \toindex{scaled}
-
- Switching via {\tt\\bigrm} will give roman type that is larger
- than the usual by 20\%\null. {\tt \\font\\bigbigrm = cmr10
- scaled \\magstep 2} will define a font that is about 44\% larger
- than the usual roman typeface. The sizes {\tt \\magstep~0} to
- {\tt \\magstep~5} are available. On most computers {\tt \\magstephalf}
- is also available; this represents an enlargement of
- about 9.5\%\null. Here are some samples at various sizes:
-
- \maketable [Different Font Magnifications]
- \halign{
- \strut \tt # \hfil & \quad # \hfil \cr
- \bf Magnification & \bf Sample \cr
- \noalign{\hrule} \noalign{\smallskip}
- \\magstep 0 & \rm Sample text at magstep 0. \cr
- \\magstephalf & \halfrm Sample text at magstephalf. \cr
- \\magstep 1 & \brm Sample text at magstep 1. \cr
- \\magstep 2 & \bbrm Sample text at magstep 2. \cr
- \\magstep 3 & \bbbrm Sample text at magstep 3. \cr
- \\magstep 4 & \bbbbrm Sample text at magstep 4. \cr
- \\magstep 5 & \bbbbbrm Sample text at magstep 5. \cr
- }
- \bigskip
-
- It's also possible to use completely new typefaces. These
- are dependent on system availability, of course. Many systems
- have a file called CMSS10 which is a font that contains sans
- serif letters. Using {\tt \\font\\sf = cmss10} will allow the
- control word {\tt\\sf} to be used in the same manner as {\tt\\bf}.
- Having made this definition, the input
- \displaytext{\tt \\sf Here is a sample of our new Sans Serif font.}
- will produce
- \displaytext{\sf Here is a sample of our new Sans Serif font.}
-
- \exercise What problem might have arisen if we had used {\tt \\ss}
- instead of {\tt \\sf} to turn on the Sans Serif font? Hint: if
- the answer doesn't occur to you at first, think about the German
- alphabet and it will finally come to you.
-
- \exercise Typeset a paragraph of magnified sans serif text.
-
- The extra fonts available may vary from site to site. The ones
- in the following table are available at most places.
-
- \maketable [External Fonts Names]
- \halign{
- \strut \tt # \hfil & \quad \tt # \hfil & \quad \tt # \hfil
- & \quad \tt # \hfil & \quad \tt # \hfil
- & \quad \tt # \hfil \cr
- \noalign{\hrule} \noalign{\smallskip}
- CMBSY10 &CMBXSL10 &CMBXTI10 &CMBX10 &CMBX12 &CMBX5 \cr
- CMBX6 &CMBX7 &CMBX8 &CMBX9 &CMB10 &CMCSC10 \cr
- CMDUNH10 &CMEX10 &CMFF10 &CMFIB8 &CMFI10 &CMITT10 \cr
- CMMIB10 &CMMI10 &CMMI12 &CMMI5 &CMMI6 &CMMI7 \cr
- CMMI8 &CMMI9 &CMR10 &CMR12 &CMR17 &CMR5 \cr
- CMR6 &CMR7 &CMR8 &CMR9 &CMSLTT10 &CMSL10 \cr
- CMSL12 &CMSL8 &CMSL9 &CMSSBX10 &CMSSDC10 &CMSSI10 \cr
- CMSSI12 &CMSSI17 &CMSSI8 &CMSSI9 &CMSSQI8 &CMSSQ8 \cr
- CMSS10 &CMSS12 &CMSS17 &CMSS8 &CMSS9 &CMSY10 \cr
- CMSY5 &CMSY6 &CMSY7 &CMSY8 &CMSY9 &CMTCSC10 \cr
- CMTEX10 &CMTEX8 &CMTEX9 &CMTI10 &CMTI12 &CMTI7 \cr
- CMTI8 &CMTI9 &CMTT10 &CMTT12 &CMTT8 &CMTT9 \cr
- CMU10 &CMVTT10 \cr
- }
- \bigskip
-
- Here's a little background about these names. The first two
- letters {\tt CM} stands for Computer Modern, the name given to
- this font family by the designer. The number at the end is the
- point size: 10 point type is the normal size, 7 point is the
- normal size for subscripts, and 5 point is the normal size for
- subscripts of subscripts, 12 point is 20\% larger than 10 point,
- etc. If the letters {\tt CM} are followed by {\tt B}, it is a
- boldface type. Similarly {\tt R} indicates roman, {\tt I} is for
- italics, {\tt CSC} is for small caps, {\tt SL} is for slanted,
- {\tt SS} is for sans serif, {\tt SY} is for symbols,
- and {\tt TT} is for typewriter type.
-
- \exercise Find the fonts available on your system, and print out
- all the letters and numbers in several of them.
-
- \exercise The font {\tt CMR12} is 20\% larger than {\tt CMR10}.
- Also {\tt \\magstep~1} magnifies the type by 20\%. Take some
- text and print it using {\tt CMR12} then using {\tt CMR10} scaled
- by {\tt \\magstep~1}. The results are quite different!
-
-
-
-
- \section{The shape of things to come}
-
- In this section we want to see how to make text have different
- shapes or sizes. One may use \TeX{} with the default sizes, of
- course, just as we have been doing so far. We'll now become more
- creative with our output. In discussing the size of various
- parts of a page of text, there are several units of measure we
- can use.
-
- \subsection{Units, units, units}
-
- \TeX{} can measure length using many types of units. The most
- common are the inch, the \centimeter, the point, the pica. The
- abbreviations for these units are {\tt in}, {\tt cm}, {\tt pt},
- and {\tt pc} respectively. The point is defined by the equation 1
- inch = 72.27 points, and the pica by 1 pica = 12 points. Thus a
- point is rather small and is about the size of a decimal point.
- Here is a sample to give an idea of the comparative sizes:
- \def\pip{\vrule height 4 true pt }
- \TeXref{57}
-
- $$ \hbox{1 inch: } \hbox to 1 true in{\pip\hrulefill\pip}$$
- $$ \hbox{1 \centimeter: }\hbox to 1 true cm{\pip\hrulefill\pip}$$
- $$ \hbox{20 points: }\hbox to 20 true pt{\pip\hrulefill\pip}$$
- $$ \hbox{1 pica: } \hbox to 1 true pc{\pip\hrulefill\pip}$$
-
- Thus points are used to make fine changes; a pica is about the
- distance between the baselines of two consecutive lines of
- (unmagnified) normal text. \TeX{} is quite exact about
- dimensions; internally its smallest unit is less than one
- four-millionth of an inch. Hence it is the resolution of the
- output device that will determine the accuracy of the output.
-
- There are two other units that are sometimes useful that have
- different sizes in different fonts. The {\tt ex} is about the
- height of a small ``x'' and the {\tt em} is a little smaller than
- the width of a capital ``M''\null.
- \TeXref{60}
-
- The shape of the output is generally determined by control
- words. There are many such words; these allow very fine control
- of the resulting text. But most of the time only a small number
- of them are necessary.
-
- \subsection{Page shape}
-
- The text on a page consists of three basic parts. There is the
- headline above the main text; this often contains a chapter
- title, section title, or a page number, and may differ on odd and
- even pages. Below this is the main text, which includes any
- footnotes. And finally there is the footline that might contain a
- page number.
-
- In the examples we have seen so far, the headline has been blank.
- The footline has contained either a \centred{} number or, if {\tt
- \\nopagenumbers} had been used, has also been blank. We'll have
- more to say about headlines and footlines later in this section.
- For the moment let's concentrate on the main text.
-
- To finish one page and start a new one, {\tt \\vfill \\eject} can
- be used. The control word {\tt \\eject} forces the completion of
- the current page, while {\tt \\vfill} causes any left over
- vertical space to be gathered at the bottom of the page (you might
- try leaving out the {\tt \\vfill} as an experiment to see how the
- vertical \analog{} of justified horizontal lines of text works).
- \toindex{vfill}
- \toindex{eject}
-
-
- {\hsize=4in
- The current horizontal width of the text on the page is described
- by the control word {\tt \\hsize}. It can be changed, say to 4
- inches, by {\tt \\hsize = 4 in\ } at any desired time using
- methods to be described in the next few sections. The value of
- {\tt \\hsize} in effect when the paragraph is completed
- determines the width of the paragraph. As can be seen in this
- paragraph, the text width can be changed (in this case to 4
- inches) for a single paragraph. Because it represents the
- current value of the horizontal width, expressions such as {\tt
- \\hsize = 0.75\\hsize} can make a new value that is relative
- to the old one. \par}
- \toindex{hsize}
-
- The vertical \analog{} of {\tt \\hsize} is {\tt \\vsize}, which
- is the current height of the main text. It can be reset, just
- like {\tt \\hsize}. Thus, {\tt \\vsize = 8 in\ } can be used to
- change the vertical height of the main text. Note that {\tt \\vsize}
- is the size of the text exclusive of any headline or
- footline material.
- \toindex{vsize}
-
- Text can also be shifted across the page. The upper left corner
- of the text is one inch down and one inch in from the upper left
- corner of the page. The control words {\tt \\hoffset} and {\tt \\voffset}
- are used to shift the text horizontally and
- vertically. Thus {\tt \\hoffset = .75 in} and {\tt \\voffset =
- -.5 in} would shift the text an additional .75 inches to the
- right and .5 inches up. Most of the time you'll need to set {\tt
- \\hoffset}, {\tt \\voffset}, and {\tt \\vsize} at the beginning
- of your document only.
- \TeXref{251}
- \toindex{hoffset}
- \toindex{voffset}
-
- \global\advance\footnotenum by 1
- \maketable [Control words for page sizes]
- \halign{
- \strut \hfil # & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
- \bf Name & \bf \TeX{} Control Word & \bf \TeX{} default value (inches)\cr
- \noalign{\hrule} \noalign{\smallskip}
- horizontal width & \\hsize & 6.5 \cr
- vertical width & \\vsize & 8.9 \cr
- horizontal offset${}^\the\footnotenum$ & \\hoffset & 0 \cr
- vertical offset${}^\the\footnotenum$ & \\voffset & 0 \cr
- }
-
- \footnote{}{\llap{$^\the\footnotenum$}The text is initially 1 inch
- down and 1 inch in from upper left corner of the page.}
- \nobreak
-
- \exercise Enter a paragraph of text that is a few lines long.
- Take several copies of your paragraph and put {\tt \\hsize = 5
- in\ } before one and {\tt \\hsize = 10 cm\ } in front of a second
- one. Try a few other values for {\tt \\hsize}.
-
- \exercise Put {\tt \\hoffset = .5 in\ } and {\tt \\voffset = 1
- in\ } before the first paragraph of your previous exercise.
-
- \exercise Take your previous exercise and put {\tt \\vsize = 2
- in\ } before the first paragraph.
- \bigskip
-
- In the previous section we saw that it is possible to use fonts
- of larger size by using the {\tt \\magstep} control word. It's
- also possible to magnify the entire document at once. If {\tt
- \\magnification = \\magstep 1} appears at the top of your document,
- then all of your output is magnified by 20\%\null. The other
- values of {\tt \\magstep} can be used, too. {\bf It should be
- emphasized that {\tt \\magnification} can only be used before
- even a single character is typeset.} This magnification creates
- a problem in units; if the document is to be magnified by 20\%
- and {\tt \\hsize = 5 in} appears in the \TeX{} input file, should
- the final output have an {\tt \\hsize} of 5 inches or should it
- be magnified by 20\% to 6 inches? Unless told otherwise, all the
- dimensions will be magnified so that, in this case, {\tt \\hsize}
- would be 6 inches in the final output. This means that all the
- dimensions will increase uniformly when {\tt \\magnification} is
- used. But for some special situations it might not be desirable
- for this to happen; for example, you might want to leave a space
- of exactly 3 inches to insert a figure. In this case any unit
- can be modified by {\tt true} so that {\tt \\hsize = 5 true in}
- will always set the line width to 5 inches, regardless of
- magnification. \TeXref{59--60} \toindex{magnification}
-
- \exercise Put {\tt \\magnification = \\magstep 1} as the first
- line in one of your input files and see how the output changes.
-
- \subsection{Paragraph shape}
-
- When \TeX{} is reading the text to be typeset from your input
- file, it reads in a paragraph at a time and then typesets it.
- This means that there is a lot of control over paragraph shapes,
- but also that some care must be taken. We've already seen that
- {\tt \\hsize} can be used to control the width of a single
- paragraph. But suppose the following appeared as part of your
- input file:
-
- \beginuser
- \\hsize = 5 in
- Four score and seven years $\ldots$
- $\vdots$
- $\ldots$ from this earth.
- \\hsize = 6.5 in
-
- \enduser
-
- What is the width of the paragraph? The {\tt \\hsize} was
- changed at the start of the paragraph and again at the end.
- Since the paragraph was not completed (by putting in a blank line
- or {\tt \\par}) until after the second change, the paragraph
- would be typeset with a width of 6.5 inches. However, if a blank
- line were inserted before {\tt \\hsize = 6.5 in}, then the
- paragraph would be typeset with a width of 5 inches. So, in
- general, when a paragraph is set, the values of the parameters
- that are in effect when the paragraph is completed are the ones
- that are used.
-
- Here is a table with some paragraph parameters:
-
- \maketable [Some paragraph shape parameters]
- \halign{
- \strut \hfil # & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
- \bf Function & \bf \TeX{} Control Word & \bf \TeX{} default\cr
- \noalign{\hrule} \noalign{\smallskip}
- width & \\hsize & 6.5 inches \cr
- indentation on first line & \\parindent & 20 points\cr
- distance between lines & \\baselineskip & 12 points\cr
- distance between paragraphs & \\parskip & 0 points \cr
- }
-
- \toindex{parindent}
- \toindex{parskip}
- \toindex{baselineskip}
-
- The control word {\tt \\noindent} may be used at the beginning of
- a paragraph to avoid the automatic indentation on the first line.
- This control word will only affect the paragraph being set when
- it is invoked (of course {\tt \\parindent = 0 pt} will cause no
- indentation for all paragraphs).
- \toindex{noindent}
-
- {\narrower
- A more flexible way to control the width of a paragraph is to use
- {\tt \\rightskip} and {\tt \\leftskip}. Setting {\tt \\leftskip
- = 20 pt} causes the left margin of the paragraph to be moved in
- an extra twenty points. Negative values may be assigned to {\tt
- \\leftskip} to move the left margin out. The control word {\tt
- \\rightskip} does the same to the right side of the paragraph.
- The single control word {\tt \\narrower} is the equivalent of
- setting both {\tt \\leftskip} and {\tt \\rightskip} equal to {\tt
- \\parindent}. This is quite useful for long quotations, and
- this paragraph is an example of its use. As with {\tt \\hsize},
- the value of {\tt \\leftskip} and {\tt \\rightskip} in effect
- when the paragraph is completed is the one which will apply to
- the whole paragraph.
- \TeXref{100}
-
- }
- \toindex{leftskip}
- \toindex{rightskip}
- \toindex{narrower}
-
- \exercise Make two paragraphs with the following specifications:
- the left margin of both paragraphs is indented by 1.5 inches,
- the right margin of the first paragraph is indented by 0.75
- inches, and the right margin of the second paragraph is indented
- by 1.75 inches.
- \bigskip
-
- \def\hangparagraph{ Lines can be made with different lengths
- within one paragraph by using {\tt \\hangindent} and {\tt
- \\hangafter}. The amount of the indentation is determined by value
- of {\tt \\hangindent}. If {\tt \\hangindent} is positive, the
- indentation is made from the left, and if it is negative it is
- made from the right. The lines on which the indentation occurs is
- controlled by {\tt \\hangafter}. If {\tt \\hangafter} is
- positive then it determines the number of lines at full width
- before the indentation starts. Thus if {\tt \\hangindent = 1.75
- in} and {\tt \\hangafter = 6}, then the first six lines will be
- at full width and the rest will be indented by 1.75 inches from
- the left. On the other hand if {\tt \\hangindent = \hbox{-1.75}
- in} and {\tt \\hangafter = -6}, then the first six lines will be
- indented by 1.75 inches from the right and the rest will be at
- full width. \TeX{} resets to the default values {\tt \\hangindent
- = 0 pt} and {\tt \\hangafter = 1} after each paragraph. These
- control words are useful for paragraphs with ``hanging indents''
- and for flowing a paragraph around space reserved for a figure.
- \TeXref{355}The control word {\tt \\hang} at the beginning of the
- paragraph will cause the first line to be of full width ({\tt
- \\hangafter=1}) and the rest of the paragraph to be indented by
- the current value of {\tt \\parindent}. But you do have to use
- {\tt \\noindent} if you want the first line to extend all the way
- to the left margin.
- \TeXref{102}
- \par}
-
- \hangafter=6 \hangindent=1.75in
- \hangparagraph
- \toindex{hangindent}
- \toindex{hangafter}
- \toindex{hang}
-
- Here is the previous paragraph repeated with {\tt \\hangafter = -6}
- and {\tt \\hangindent = -1.75 in}.
-
- \hangafter=-6 \hangindent=-1.75in \hangparagraph
-
-
- The control word {\tt \\parshape} can be used to make paragraphs with
- a greater variety of shapes.
- \TeXref{101}
- \toindex{parshape}
-
- Another useful control word for setting paragraphs is {\tt \\item}.
- It can be used to make various types of itemized lists,
- and is invoked using the pattern {\tt \\item\lb$\ldots$\rb}\null.
- This causes the next paragraph to be formed with every line
- indented by {\tt \\parindent} and, in addition, the first line
- labeled on the left by whatever is between the braces. It is
- usually used with {\tt \\parskip = 0 pt}, since that control word
- determines the vertical space between the different items. The control
- word {\tt \\itemitem} is the same as {\tt \\item} except that the
- indentation is twice as far, that is, twice the value of
- {\tt \\parindent}.
- \TeXref{102}Here is an example:
- \toindex{item}
- \toindex{itemitem}
-
- \beginliteral
- \parskip = 0pt \parindent = 30 pt
- \noindent
- Answer all the following questions:
- \item{(1)} What is question 1?
- \item{(2)} What is question 2?
- \item{(3)} What is question 3?
- \itemitem{(3a)} What is question 3a?
- \itemitem{(3b)} What is question 3b?
- @endliteral
-
-
- \noindent
- will produce
- \vfill\eject
-
- {\parskip = 0pt \parindent = 30 pt
- \noindent
- Answer all the following questions:
- \item{(1)} What is question 1?
- \item{(2)} What is question 2?
- \item{(3)} What is question 3?
- \itemitem{(3a)} What is question 3a?
- \itemitem{(3b)} What is question 3b?
-
- }
-
- \exercise Make a paragraph several lines long and use it with
- the {\tt \\item} control word to see the ``hanging indent.'' Now
- take the same paragraph and use it with different values of {\tt
- \\parindent} and {\tt \\hsize}.
- \bigskip
-
- Now let's see how to put space between paragraphs. The control
- word {\tt \\parskip} is used to determine how much space is
- normally left between paragraphs. So if you put {\tt \\parskip =
- 12 pt} at the beginning of your \TeX{} source file, there will be
- 12 points between paragraphs unless other instructions are
- given. The control word {\tt \\vskip} can be used to insert extra
- vertical space between paragraphs. If {\tt \\vskip 1 in} or {\tt
- \\vskip 20 pt} appears between two paragraphs, then the extra
- space is inserted.
-
- There are a couple of peculiarities of {\tt \\vskip} that seem
- quite strange at first. If you have {\tt \\vskip 3 in} and the
- skip starts two inches from the bottom of the page, the rest of
- the page is skipped, but the extra one inch is {\it not\/}
- skipped at the top of the next page. In other words, {\tt \\vskip}
- {\bf will not insert space across page boundaries}. In
- fact, {\tt \\vskip~1~in} will have no effect at all if it happens
- to appear at the top of a page! For many types of vertical
- spacing this is quite appropriate. The space before a section
- heading, for example, should not continue across page boundaries.
-
- A similar phenomenon occurs at the beginning of your document.
- If, for example, you want a title page with the title about half
- way down the page, you can not insert the space at the top of the
- page using {\tt \\vskip}.
-
- But what if you really want some blank space at the top of a
- page? You could start the page with {\tt\\\sp} but this in effect
- typesets a one line paragraph containing a blank. So while
- nothing is typeset, the extra space due to the values of {\tt
- \\baselineskip} and {\tt \\parskip} will add extra space. An easier
- method is to use {\tt \\vglue} instead of {\tt \\vskip} to get
- the desired result. Thus {\tt \\vglue 1 in\ }will leave one inch
- of blank space at the top of the page.\TeXref{352}
- \toindex{vglue}
-
-
- We can note in passing that there is another more general method
- to put material at the top of a page using the control words {\tt
- \\topinsert} and {\tt \\endinsert}. If {\tt \\topinsert $\ldots$
- \\endinsert} is used within a page, the material between
- {\tt \\topinsert} and {\tt \\endinsert} will appear at the top
- of the page, if possible. For example:
-
- \vbox{
- \beginuser
- \\topinsert
- \\vskip 1 in
- \\centerline\lb Figure 1\rb
- \\endinsert
- \enduser
- }
- \noindent
- is useful for inserting figures of a prescribed size.
- \TeXref{115}
- \toindex{topinsert}
- \toindex{endinsert}
-
- There are also some special control words for making small
- vertical skips. They are {\tt \\smallskip}, {\tt \\medskip}, and
- {\tt \\bigskip}. Here is the size of each one:
-
- \def\hrl{\hrule width .5 in}
-
- \centerline{{\tt \\smallskip}: \vbox{\hrl \smallskip \hrl} \quad
- {\tt \\medskip}: \vbox{\hrl \medskip \hrl} \quad
- {\tt \\bigskip}: \vbox{\hrl \bigskip \hrl}
- }
- \toindex{smallskip}
- \toindex{medskip}
- \toindex{bigskip}
-
- \subsection{Line shape}
-
- For most material \TeX{} does a good job of breaking up a
- paragraph into lines. But sometimes it's necessary to add
- further instructions. It's possible to force a new line by
- inserting {\tt \\hfill \\break} in your input file. It's also
- possible to put some text on a line by itself using the control
- word {\tt \\line\lb $\ldots$\rb}; then the material between the
- braces will be restricted to one line (although the result will
- be spread out over the whole line and may be horrible). The
- control words {\tt \\leftline\lb $\ldots$\rb}, {\tt \\rightline\lb
- $\ldots$\rb}, and {\tt \\centerline\lb $\ldots$\rb} will,
- respectively, set the material between the braces on a single
- line on the left margin, on the right margin, or \centred. Thus
- \toindex{hfill}
- \toindex{break}
- \toindex{centerline}
- \toindex{leftline}
- \toindex{rightline}
- \toindex{line}
-
-
- \beginliteral
- \leftline{I'm over on the left.}
- \centerline{I'm in the @centre.}
- \rightline{I'm on the right.}
- \line{I just seem to be spread out all over the place.}
- @endliteral
-
- \noindent
- produces the four lines:
- \vskip\baselineskip
-
-
- {
- \hbadness = 10000
- \leftline{I'm over on the left.}
- \centerline{I'm in the \center.}
- \rightline{I'm on the right.}
- \line{I just seem to be spread out all over the place.}
-
- Other types of spacing can be obtained by using the control word {\tt
- \\hfil}. This causes all the extra space in the line to be
- accumulated at the position where {\tt \\hfil} appears.
- Thus if we alter our last example to
- {\tt \\line\lb I just seem to be spread out \\hfil all over the place.\rb}
- we will get \hfil\break
- \medskip
- \line{I just seem to be spread out \hfil all over the place.}
- \medskip
- If we have more than one {\tt \\hfil}, they will divide any extra
- space among themselves equally. Hence
- {\tt \\line\lb left text \\hfil \centre{} text\\hfil right text.\rb}
- will produce
- \medskip
- \line{left text \hfil \centre{} text \hfil right text.}
- \toindex{hfil}
- }
-
- \exercise Typeset the following line:
-
- \line{left end \hfil left tackle \hfil left guard \hfil \centre{} \hfil
- right guard \hfil right tackle \hfil right end}
-
- \exercise Typeset the following line with twice as much space between
- ``left'' and ``right-\centre{}'' as between ``right-\centre{}'' and
- ``right'':
-
- \line{left \hfil \hfil right-\centre{} \hfil right}
-
- It's possible to move horizontally using {\tt \\hskip} in a
- manner analogous with {\tt \\vskip}.
- \toindex{hskip}
-
- \exercise What happens with the following input:\hfil\break
- {\tt \\line\lb\\hskip 1 in ONE \\hfil TWO \\hfil THREE\rb}
- \bigskip
-
- The right justification can be canceled by using the
- control word {\tt \\raggedright}.
- \toindex{raggedright}
-
- \subsection{Footnotes}
-
- The general pattern to make footnotes using \TeX{} is
- {\tt \\footnote\lb$\ldots$\rb\lb$\ldots$\rb}\null.
-
- The footnote mark goes in between the first set of braces. Some
- available marks are {\tt \\dag (\dag)}, {\tt \\ddag (\ddag)}, {\tt \\S
- (\S)}, and {\tt \\P (\P)}\null. The text of the footnote
- goes between the second set of braces. The use of numbers as
- marks is a little less straightforward. The footnote%
- \footnote{${}^{21}$}{This is the footnote at the bottom of the page.}
- at the bottom of the page was produced by using {\tt \\footnote\lb\$\lb
- \rb\^{}\lb{21}\rb\$\rb\lb This is the footnote at the
- bottom of the page.\rb} after the word ``footnote'' in the
- text. This construction is somewhat complicated; we'll see why
- it's this way when we know a little more about typesetting
- mathematics. But for the moment we can look at it as a way of
- getting the job done. You may want to use {\tt \\rm} within the
- footnote to ensure that the right font appears. Usually you will
- not want a space between the text and the control word {\tt
- footnote}.\TeXref{117}
- \toindex{footnote}
- \toindex{ddag}
- \toindex{S}
- \toindex{P}
-
- \exercise Make up a page with a relatively long footnote spanning
- several lines.
-
- \exercise Make up a page with two different footnotes on it.
-
- \subsection{Headlines and Footlines}
-
- \headline={\hfil \tenrm Page \the\pageno} %example for this section
-
- The lines for title and page numbers that go above and below the
- main text are produced by using {\tt \\headline=\lb$\dots$\rb}
- and {\tt \\footline=\lb$\dots$\rb}\null.
- \TeXref{252--253}
-
- The principle is the same as using the control word {\tt \\line\lb
- $\dots$\rb} within the usual text on the page. A helpful
- control word is {\tt \\pageno} which represents the current page
- number. Thus {\tt \\headline=\lb\\hfil \\tenrm Page \\the\\pageno\rb}
- would cause the page number to appear in the upper
- right corner preceded by the word ``Page'' (now look at the upper
- right corner of this page). It is safer to explicitly name the
- font that you want to use (in this case {\tt \\tenrm} to use the
- 10 point roman font), since you are never guaranteed that a
- particular font will be in use when the headline or footline is
- set. The control word {\tt \\the} takes the internal value of the
- next word if it is an appropriate control word and prints it as
- text. You can also use the control word {\tt \\folio} instead of
- {\tt \\the \\pageno}. The difference is that {\tt \\folio} will
- give roman numerals when {\tt \\pageno} is negative.
- \toindex{headline}
- \toindex{footline}
- \toindex{pageno}
- \toindex{the}
- \toindex{folio}
-
- You can also assign values to {\tt \\pageno} if you want your
- document to use a different sequence of page numbers from the
- usual. Roman numerals can be produced by using negative numbers;
- {\tt \\pageno=-1} at the beginning of a document will cause page
- numbers to be in roman numerals.
- \TeXref{252}
-
- Different headlines can be produced for even and odd pages in
- the following manner:
-
- {\tt
- \\headline=\lb\\ifodd \\pageno \lb$\dots$\rb \\else \lb$\dots$\rb
- \\fi\rb}
-
- \noindent
- where the material between the first set of braces is for the
- right-hand pages and the material between the second set of
- braces is for the left-hand pages.
-
- \exercise Change the footline so that the page number is \centred{}
- with a en-dash on either side.
-
- \subsection{Overfull and underfull boxes}
-
- One of the most frustrating experiences for the new \TeX{} user
- is the occurrence of overfull and underfull boxes. They are duly
- noted in the log file and are also written to the screen when \TeX{}
- is being run interactively. Overfull boxes are also marked
- on the output by a slug (a large filled-in black rectangle that
- looks like this: \vrule width \overfullrule) in the right
- margin. Various obscene terms are applied to this slug. It
- appears even though there is nothing wrong with the \TeX{} input.
- So why is the slug there and what can be done about it?
-
- A good way to visualize the way \TeX{} organizes a page is to
- think of the printed material as being put into boxes. There are
- two types of boxes: {\sl hboxes\/} and {\sl vboxes}. Most of the
- time these correspond to the organization of horizontal text
- into lines and vertical paragraphs into pages. In particular, it
- is the spacing of the words in a hbox corresponding to a line of
- text that causes the slug to appear.
-
- Recall that \TeX{} reads in the complete paragraph before
- deciding how to break it up into lines. This is better than
- working a line at a time, since a slight improvement in one line
- might cause catastrophic changes farther down in the paragraph.
- When words are gathered together to form a line, space is added
- between the words to justify the right margin. Very large spaces
- between words is obviously undesirable; the badness of the line
- is a measure of how badly the words are spaced. An underfull
- hbox means that there is too much space between words. More
- specifically, the badness of any line is a number between 0
- (perfect) and 10000 (horrible). There is a parameter called {\tt
- \\hbadness} whose default value is 1000\null. Any line whose
- badness is greater than {\tt \\hbadness} is reported as an
- underfull hbox. If the value of {\tt \\hbadness} is increased,
- then fewer underfull hboxes will be reported. In fact {\tt
- \\hbadness = 10000} will suppress the reporting of underfull
- hboxes altogether. Similarly, if the words must be squeezed into
- a line so that the spaces are very small or even so the words
- extend a little into the right margin, then an overfull hbox
- results. \toindex{hbadness}
-
- %%%%%%%%%%%%%% restore original headline %%%%%%%%%%%%%%%%%%%%%%%%
- \headline={\iftitlepage \hfil \global\titlepagefalse
- \else \gentleheadline \fi}
-
- In a similar way, sometimes \TeX{} allows a line to be slightly
- longer than {\tt \\hsize} in order to achieve a more balanced
- appearance. The control word {\tt \\tolerance} determines when
- this happens. If the badness of a line is greater than {\tt
- \\tolerance}, \TeX{} will make the line longer by adding a new word
- at the end of the line, even though it might exceed the value of
- {\tt \\hsize}. A line which is only slightly longer is set
- without being reported. The control word {\tt \\hfuzz} determines
- how much excess is allowed; the default is {\tt \\hfuzz
- =~0.1~pt}. A line that is more than slightly longer than {\tt \\hsize}
- is obviously a serious problem; \TeX{} puts a slug in
- the margin to make its point forcefully. It's possible to avoid
- overfull hboxes altogether by increasing the value of {\tt \\tolerance}.
- With {\tt \\tolerance = 10000} there will never be
- overfull boxes or slugs. The default is {\tt \\tolerance = 200}\null.
- \TeXref{29}
- \toindex{hfuzz}
- \toindex{tolerance}
-
- The width of the slug is determined by the control word {\tt
- \\overfullrule}. Including {\tt \\overfullrule = 0 pt} in your
- file will delete any further printing of the slugs. The
- overfull boxes will still be there, of course, and they will
- probably be harder to spot.
- \toindex{overfullrule}
-
- So we see why overfull boxes and underfull boxes are reported; we
- can also change the reporting by changing the values of {\tt
- \\badness}, {\tt \\hfuzz}, and {\tt \\tolerance}. In addition, a
- small value of {\tt \\hsize} obviously makes it more difficult to
- set lines and causes more overfull and underfull hboxes to be
- reported. These are warnings that you ignore at your own peril!
-
- Adding new possibilities of hyphenation will sometimes eliminate
- an overfull box. \TeX{} has automatic hyphenation and usually
- finds good places to hyphenate a word; however, it's possible to
- add hyphenations to let lines break at new places. For example,
- the automatic hyphenation will never put a hyphen in the word
- ``database''. If you type in {\tt data\\-base}, it will allow a
- hyphen to be inserted after the second letter ``a'' in the word.
- More generally, if you put {\tt \\hyphenation\lb data-base\rb} in
- the beginning of your input file, then all occurrences of the
- word ``database'' will allow hyphenation after the letter ``a''.
- \TeXref{28} The log file will show the possible hyphenations on
- the line containing the overfull or underfull box. Sometimes the
- best solution to an overfull or underfull hbox is a little
- judicious editing of the original document.
- \toindex{hyphenation}
-
- Our discussion has involved the setting of type into lines, that is,
- the horizontal page structure. There are several vertical \analog{}s.
- Overfull and underfull hboxes indicate how well words are gathered
- into lines. Similarly, overfull and underfull vboxes are reported
- when paragraphs are gathered to form pages. A large table that
- can't be broken in the middle, for example, can produce an underfull
- vbox that is reported in the log file when the page being typeset is
- completed. The control word {\tt \\vbadness} works for the vertical
- placement of text in the same way as {\tt \\hbadness} works for
- horizontal text.
- \toindex{vbadness}
-
- \exercise Take a few paragraphs and print them using various (small)
- values of {\tt \\hsize} to see what kind of overfull boxes result.
- Repeat with various values of {\tt \\hbadness}, {\tt \\hfuzz}, and
- {\tt \\tolerance}.
-
-
-
-
-
-
- \section{$\Bigl\{$Groups, $\bigl\{$Groups,
- $\{$and More Groups$\}\bigr\}\Bigr\}$}
-
- The concept of gathering text into groups allows \TeX{} input
- files to be greatly simplified. A new group is started by the
- character {\tt\lb} and terminated by the character {\tt \rb}\null.
- Changes made within a group will lose their effect when the
- group terminates. So, for example if {\tt \lb \\bf three
- boldface words\rb} appears in your text, the opening brace starts
- the group, the {\tt \\bf} control word changes to a boldface
- font, and the closing brace finishes up the group. Upon
- completion of the group the font being used is the one in effect
- before the group started. This is the (easier) way of having a
- few words in a different font. It's also possible to have groups
- nested within groups.
-
- \def\sectiontitle{$\Bigl\{$Groups, $\bigl\{$Groups, $\dots \bigr\}\Bigr\}$}
-
- As another example, size changes can be made in the text that are
- only temporary. For example
- \beginuser
- \lb
- \\hsize = 4 in
- \\parindent = 0 pt
- \\leftskip = 1 in
- will produce a paragraph that is four
- $\vdots$
- (this is an easy mistake to make).
- \\par
- \rb
- \enduser
-
- {\hsize = 4 in
- \parindent = 0 pt
- \leftskip = 1 in
- will produce a paragraph that is four inches wide with the text
- offset into the paragraph by one inch regardless of the settings
- in effect before the start of the group. This paragraph is set
- with those values. After the end of the group, the old settings
- are in effect again. Note that it is necessary to include
- {\tt \\par} or to use a blank line before the closing brace to end
- the paragraph, since otherwise the group will end and \TeX{} will
- go back to the old parameters before the paragraph is actually
- typeset (this is an easy mistake to make). \par}
-
- When a control word (like {\tt \\centerline}) acts on text
- following it in braces, that text is implicitly in a group. Thus
- {\tt \\centerline\lb\\bf A bold title\rb} will produce a \centred{}
- boldface line, and the text following that line will be in
- whatever font was in effect before the {\tt \\centerline} was
- invoked.
-
- The empty group {\tt\lb\rb} is useful. One use allows accents to be
- typeset with no accompanying letter. For example, {\tt \\\~{}\lb\rb}
- will print a tilde with no letter under it. It can also be used to
- stop \TeX{} from eating up consecutive spaces. Hence {\tt I use
- \\TeX\lb\rb{} all the time} will leave a space after ``\TeX'' in the
- output. This is an alternative to using {\tt \\\sp} as we did in
- Section~1.
- \TeXref{19--21}
-
- Grouping can also be used to avoid spaces in the middle of a word
- when including accents. Either {\tt soup\\c\sp con} or {\tt
- soup\\c\lb c\rb on} will produce the word soup\c{c}on.
-
- \exercise Change the dimensions of one paragraph on a page using the
- grouping idea.
-
- \exercise Mathematicians sometime use the word ``i{f}f'' as an
- abbreviation for ``if and only if''\null. In this case it looks
- better if the first and second letter ``f'' are {\sl not\/}
- joined as a ligature. How do you do this (there are several
- solutions)?
-
- It's really easy to forget to match braces properly. The effect
- can be dramatic; if you get output that suddenly changes to an
- italic font for the rest of the document, a mismatched brace is
- probably the cause. If you have an extra {\tt \lb} \TeX{} will
- give a message in the log file: {\tt (\\end occurred inside a
- group at level 1)}. An extra {\tt\rb} will result in the message
- \hbox{\tt! Too many \rb's.}
-
- Here's a little hint to help you keep track of the braces in more
- complicated groups: put the opening brace on a line by itself and
- do the same for the closing brace. If there are braces nested
- within the original ones, put them on separate lines also, but
- indent them a few spaces. The text within the nested braces can
- also be indented since \TeX{} ignores all spaces at the beginning
- of a line. The matching braces will then stand out when you look
- at your \TeX{} source file. In fact, if your editor is smart
- enough, you can create the two lines with the braces first and
- then insert the appropriate material within them with automatic
- indenting.
-
- \exercise In section 2 we changed fonts the following method:
- {\tt I started with roman type, \\it switched to italic type,
- \\rm and returned to roman type}. Get the same result using the
- idea of grouping.
-
-
- \section{No math anxiety here!}
-
- \TeX{} is at its best when typesetting mathematics. The
- conventions for doing this are many and complex, and the ability
- of \TeX{} to take them into account makes the production of high
- quality, attractive mathematical output possible. If you plan to
- produce papers with mathematical symbols in them, this section
- will give you all the basics necessary for creating beautiful
- output in almost all circumstances; \TeX{} may be used without
- any mathematics, of course, and if this is your goal, then the
- following two subsections are probably sufficient for your needs.
-
- \subsection{Lots of new symbols}
-
- Mathematical text is inserted into normal text in two possible
- ways: it can be {\sl in-line\/}, that is, as part of the usual
- lines of text. It can also be {\sl displayed}, that is, \centred{}
- in a gap between the usual text. The results in the spacing and
- placement of symbols can be quite different in each case. The
- in-line equation $\sum_{k=1}^{\infty} {1\over k^2} = {\pi^2\over6}$
- is easily seen to be different from the same equation when
- displayed:
- $$\sum_{k=1}^{\infty} {1\over k^2} = {\pi^2\over6}.$$
-
- Since the spacing and the fonts used for mathematics are quite
- different from those of ordinary text, \TeX{} needs to be told
- when mathematics rather than normal text is being typeset. This
- is done using the {\tt\$} symbol. More specifically, mathematics
- is typeset in-line by surrounding the symbols to be entered by
- single dollar signs: {\tt \$$\ldots$\$}, and is typeset displayed
- by surrounding the symbols to be entered by double dollar signs:
- {\tt \$\$$\ldots$\$\$}\null. Hence {\tt \$x = y+1\$} will give
- $x=y+1$ in-line while {\tt \$\$x = y+1.\$\$} will display
- $$x=y+1.$$
-
- The spacing for both in-line and displayed mathematics is
- completely controlled by \TeX\null. Adding spaces to your input
- has no effect at all. What if you need a space or some text in
- the middle of some mathematics? You can insert text by inserting
- it into an hbox (don't worry about the definition of an hbox for
- now): {\tt \\hbox\lb$\ldots$\rb}\null. This is particularly
- useful for displayed mathematics. Hence ``$x=y+1 \hbox{ whenever
- } y=x-1$'' can be typeset using {\tt \$x=y+1 \\hbox\lb\ whenever
- \rb y=x-1\$}. Note the spaces on either side of the word within
- the braces. Usually it isn't necessary to insert spaces into
- mathematical text, but here are the control sequences that do the
- job.
- \TeXref{167}
-
- \maketable [Adding space to mathematical text]
- \halign{
- \strut \hfil # & \quad \hfil\tt# \hfil \quad
- & \hbox to 2cm{\hrulefill\vrule height 8pt#\vrule height 8pt\hrulefill} \cr
- Name & \rm Control Sequence & \hfil{}$\gets$Size$\to$\cr
- \noalign{\hrule} \noalign{\smallskip}
- Double quad & \\qquad &\qquad \cr
- Quad & \\quad &\quad \cr
- Space & \\\sp\ &\ \cr
- Thick space & \\; &$\;$\cr
- Medium space & \\> &$\>$\cr
- Thin space & \\, &$\,$\cr
- Negative thin space & \ \\!\ &$\!$\cr
- }
-
- \toindex{quad}
- \toindex{qquad}
- \toindex{\sp}
- \toindex{;}
- \toindex{>}
- \toindex{,}
- \toindex{!}
-
- If you look closely at the negative thin space, you'll notice
- that, unlike the other entries, the two arms overlap. This is
- because the negative space is one in the opposite direction, that
- is, while the other control sequences increase the amount of
- space between two symbols being typeset, the negative thin space
- decreases the space between them, even if it causes them to
- overlap.
-
- \exercise Typeset the following: $C(n,r) = n!/(r!\,(n-r)!)$\null. Note the
- spacing in the denominator.
- \bigskip
-
- You shouldn't have any blank lines between the dollar signs
- delimiting the mathematical text. \TeX{} assumes that all the
- mathematical text being typeset is in one paragraph, and a blank
- line starts a new paragraph; consequently, this will generate an
- error message. This turns out to be useful, for one of the
- easiest errors to make is to forget to put in the trailing dollar
- sign(s) after the mathematical input (I promise that you'll do it
- at least once while learning \TeX{}); if \TeX{} allowed more than
- one paragraph to be between the dollars signs, then one omitted
- trailing dollar sign might cause the rest of the document to be
- typeset as mathematics.
-
- Most mathematical text is entered in exactly the same way for
- in-line typesetting as for displayed typesetting (except for the
- surrounding dollar signs, of course). The exceptions, such as
- aligning multiline displays and placing equation numbers at the
- left or right margin will be discussed in the last part of this
- section.
-
- Many new symbols can appear when typesetting mathematics. Most
- of the ones that actually appear on the keyboard can be used
- directly. The symbols {\tt + - / * = ' | < > (} and {\tt )} are
- all entered directly. Here they are as mathematics: $+ - / * =\>
- '\> | <\> >\> ( \> )$.
-
- \exercise Typeset the equation $a+b=c-d=xy=w/z$ as in-line and
- displayed mathematical text.
-
- \exercise Typeset the equation $(fg)' = f'g + fg'$ as in-line and
- displayed mathematical text.
- \bigskip
-
- Many other symbols, as you would expect, are predefined control
- words. All Greek letters are available. Here is a table of them:
- \TeXref{434}
-
- \maketable [Greek letters]
- \halign{
- \strut \hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \qquad
- &\hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \cr
- \noalign{\hrule} \noalign{\smallskip}
- \alpha & \\alpha &\beta & \\beta &\gamma & \\gamma &\delta & \\delta \cr
- \epsilon & \\epsilon & \varepsilon & \\varepsilon & \zeta & \\zeta &
- \eta & \\eta \cr
- \theta & \\theta & \vartheta & \\vartheta & \iota & \\iota & \kappa &
- \\kappa \cr
- \lambda & \\lambda & \mu & \\mu & \nu & \\nu & \xi & \\xi \cr
- o & o & \pi & \\pi & \rho & \\rho & \varrho & \\varrho \cr
- \sigma & \\sigma & \varsigma & \\varsigma & \tau & \\tau & \upsilon &
- \\upsilon \cr
- \phi & \\phi & \varphi & \\varphi & \chi & \\chi & \psi & \\psi \cr
- \omega & \\omega & \Gamma & \\Gamma & \Delta & \\Delta & \Theta &
- \\Theta \cr
- \Lambda & \\Lambda & \Xi & \\Xi & \Pi & \\Pi & \Sigma & \\Sigma \cr
- \Upsilon & \\Upsilon & \Phi & \\Phi & \Psi & \\Psi & \Omega & \\Omega \cr
- }
-
- \toindex{alpha}
- \toindex{beta}
- \toindex{gamma}
- \toindex{delta}
- \toindex{epsilon}
- \toindex{varepsilon}
- \toindex{zeta}
- \toindex{eta}
- \toindex{theta}
- \toindex{vartheta}
- \toindex{iota}
- \toindex{kappa}
- \toindex{lambda}
- \toindex{mu}
- \toindex{nu}
- \toindex{xi}
- \toindex{pi}
- \toindex{rho}
- \toindex{varrho}
- \toindex{sigma}
- \toindex{varsigma}
- \toindex{tau}
- \toindex{upsilon}
- \toindex{phi}
- \toindex{varphi}
- \toindex{chi}
- \toindex{psi}
- \toindex{omega}
- \toindex{Gamma}
- \toindex{Delta}
- \toindex{Theta}
- \toindex{Lambda}
- \toindex{Xi}
- \toindex{Pi}
- \toindex{Sigma}
- \toindex{Upsilon}
- \toindex{Phi}
- \toindex{Psi}
- \toindex{Omega}
-
-
- \exercise Typeset $\alpha\beta=\gamma+\delta$ as in-line and displayed
- mathematical text.
-
- \exercise Typeset $\Gamma(n) = (n-1)!$ as in-line and displayed
- mathematical text.
-
- Sometimes accents are put above or below symbols. The control
- words used for accents in mathematics are different from those
- used for normal text. The normal text control words may not be
- used for mathematics and vice-versa.
- \TeXref{135--136}
-
- \maketable [Mathematical accents]
- \halign{
- \strut \hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ &
- \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \qquad \cr
- \noalign{\hrule} \noalign{\smallskip}
- \hat o & \\hat o & \check o & \\check o & \tilde o & \\tilde o \cr
- \acute o & \\acute o & \grave o & \\grave o & \dot o & \\dot o \cr
- \ddot o & \\ddot o &\breve o & \\breve o & \bar o & \\bar o \cr
- \vec o & \\vec o & \widehat {abc} & \\widehat \lb abc\rb
- & \widetilde {abc} & \\widetilde \lb abc\rb\cr
- }
-
- \toindex{hat}
- \toindex{check}
- \toindex{tilde}
- \toindex{acute}
- \toindex{grave}
- \toindex{dot}
- \toindex{ddot}
- \toindex{breve}
- \toindex{bar}
- \toindex{vec}
- \toindex{widehat}
- \toindex{widetilde}
-
-
-
- Binary operators combine two mathematical objects to get another
- object. Ordinary addition and multiplication, for example,
- combine two numbers to get another number, and so they are binary
- operators. When a binary operator such as $+$ or $\times$ is
- typeset, a little extra space is put around it. Here is a list of
- some of the available binary operators:
- \TeXref{436}
-
- \maketable [Binary operators]
- \halign{
- \strut \hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \qquad
- &\hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \cr
- \noalign{\hrule} \noalign{\smallskip}
- \cdot & \\cdot &\times & \\times &\ast & \\ast &\star & \\star \cr
- \circ & \\circ & \bullet & \\bullet & \div & \\div & \diamond & \\diamond \cr
- \cap & \\cap & \cup & \\cup & \vee & \\vee & \wedge & \\wedge \cr
- \oplus & \\oplus &\ominus & \\ominus & \otimes &\\otimes &\odot &\\odot \cr
- }
-
- \toindex{cdot}
- \toindex{times}
- \toindex{ast}
- \toindex{star}
- \toindex{circ}
- \toindex{bullet}
- \toindex{div}
- \toindex{diamond}
- \toindex{cap}
- \toindex{cup}
- \toindex{vee}
- \toindex{wedge}
- \toindex{oplus}
- \toindex{ominus}
- \toindex{otimes}
- \toindex{odot}
-
- Ellipses are commonly used with binary operators. The control
- word {\tt \\cdots} will raise the dots so that they are level
- with the binary operator. Thus {\tt \$a + \\cdots + z\$} will
- produce $a + \cdots + z$. The control word {\tt \\ldots} will
- put the dots on the baseline, and so {\tt \$1\\ldots n\$}
- produces $1\ldots n$.
- \toindex{cdots}
- \toindex{ldots}
-
- \exercise Typeset: $x\wedge (y\vee z) = (x\wedge y) \vee (x\wedge z)$.
-
- \exercise Typeset: $2+4+6+\cdots +2n = n(n+1)$.
- \bigskip
-
- A relation indicates a property of two mathematical objects. We
- already know how to show two objects equal, or how to show one
- number less than or greater than another number (since these are
- symbols on most terminal keyboards). To negate a relation, the
- control word {\tt \\not} is put in front of the relation. Here
- are some relations:
- \TeXref{436}
- \toindex{not}
-
- \maketable [Relations ]
- \halign{
- \strut \hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \qquad
- &\hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \cr
- \noalign{\hrule} \noalign{\smallskip}
- \leq & \\leq &\not\leq & \\not \\leq
- & \geq & \\geq & \not\geq & \\not \\geq \cr
- \equiv & \\equiv & \not\equiv & \\not \\equiv
- & \sim & \\sim & \not\sim & \\not \\sim \cr
- \simeq & \\simeq & \not\simeq & \\not \\simeq
- & \approx & \\approx & \not\approx & \\not \\approx \cr
- \subset & \\subset & \subseteq & \\subseteq
- & \supset & \\supset & \supseteq & \\supseteq \cr
- \in & \\in & \ni & \\ni & \parallel & \\parallel & \perp & \\perp \cr
- }
-
- \toindex{leq}
- \toindex{geq}
- \toindex{equiv}
- \toindex{sim}
- \toindex{simeq}
- \toindex{approx}
- \toindex{subset}
- \toindex{subseteq}
- \toindex{supset}
- \toindex{supseteq}
- \toindex{in}
- \toindex{ni}
- \toindex{parallel}
- \toindex{perp}
-
-
- \exercise
- Typeset: $\vec x\cdot \vec y = 0$ if and only if $\vec x \perp \vec y$.
-
- \exercise
- Typeset: $\vec x\cdot \vec y \not= 0$ if and only if $\vec x \not\perp \vec y$.
-
- Here are some other available mathematical symbols:\TeXref{435--438}
-
- \maketable [Miscellaneous symbols ]
- \halign{
- \strut \hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \qquad
- &\hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \cr
- \noalign{\hrule} \noalign{\smallskip}
- \aleph & \\aleph & \ell & \\ell & \Re & \\Re & \Im & \\Im \cr
- \partial & \\partial & \infty & \\infty & \| & \\| & \angle & \\angle \cr
- \nabla & \\nabla & \backslash &\\backslash & \forall & \\forall
- & \exists & \\exists \cr
- \neg & \\neg & \flat & \\flat & \sharp & \\sharp & \natural & \\natural \cr
- }
-
- \toindex{aleph}
- \toindex{ell}
- \toindex{Re}
- \toindex{Im}
- \toindex{partial}
- \toindex{infty}
- \toindex{|}
- \toindex{angle}
- \toindex{nabla}
- \toindex{backslash}
- \toindex{forall}
- \toindex{exists}
- \toindex{neg}
- \toindex{flat}
- \toindex{sharp}
- \toindex{natural}
-
- \exercise Typeset: $(\forall x\in \Re)(\exists y\in\Re)$ $y>x$.
-
- \subsection{Fractions}
-
- There are two methods of typesetting a fraction: it can be
- typeset either in the form $1/2$ or in the form ${1\over2}$\null.
- The first case is just entered with no special control sequences,
- that is, {\tt \$1/2\$}\null. The second case uses the control
- word {\tt \\over} and the following pattern: {\tt \lb
- <numerator> \\over <denominator>\rb}\null. Hence {\tt \$\$\lb a+b
- \\over c+d\rb.\$\$} gives $${a+b\over c+d}.$$
- \TeXref{139--140}
- \toindex{over}
-
- \exercise Typeset the following: ${a+b\over c}\quad {a\over b+c}
- \quad {1\over a+b+c} \not= {1\over a}+{1\over b}+{1\over c}$.
-
- \exercise Typeset: What are the points where
- ${\partial \over \partial x} f(x,y) = {\partial \over \partial y}
- f(x,y) = 0$?
-
- \subsection{Subscripts and superscripts}
-
- Subscripts and superscripts are particularly easy to enter using
- \TeX\null. The characters {\tt \_{}} and {\tt \^{}} are used to
- indicate that the next character is a subscript or a superscript.
- Thus {\tt \$x\^{}2\$} gives $x^2$ and {\tt \$x\_{}2\$} gives
- $x_2$\null. To get several characters as a subscript or
- superscript, they are grouped together within braces. Hence we
- can use {\tt \$x\^{}\lb 21\rb\$} to get $x^{21}$ and {\tt \$x\_{}\lb
- 21\rb\$} to get $x_{21}$\null. Notice that the
- superscripts and subscripts are automatically typeset in a
- smaller type size. The situation is only slightly more
- complicated for a second layer of subscripts or superscripts.
- You can {\sl not\/} use {\tt \$x\_{}2\_{}3\$} since this could
- have two possible interpretations, namely, {\tt \$x\_{}\lb 2\_{}3\rb\$}
- or {\tt \$\lb x\_{}2\rb\_{}3\$}; this gives two
- different results: $x_{2_3}$ and ${x_2}_3$, the first of which is
- the usual mathematical subscript notation. Thus you must put in
- the complete braces to describe multiple layers of subscripts and
- superscripts. They may be done to any level.
- \TeXref{128--130}
-
- To use both subscripts and superscripts on one symbol, you use
- both the {\tt \_{}} and {\tt \^{}} in either order. Thus either
- {\tt \$x\_{}2\^{}1\$} or {\tt\$x\^{}1\_{}2\$} will give $x_2^1$.
-
- \exercise
- Typeset each of the following: $e^x \quad e^{-x} \quad
- e^{i\pi}+1=0 \quad x_0 \quad x_0^2 \quad {x_0}^2 \quad 2^{x^x}$.
-
- \exercise Typeset:
- $\nabla^2 f(x,y) = {\partial^2 f \over\partial x^2}
- + {\partial^2 f \over\partial y^2}$.
- \bigskip
-
- A similar method is used for summations and integrals. The input
- of {\tt \$\\sum\_{}\lb k=1\rb\^{}n k\^{}2\$} will give $\sum_{k=1}^n
- k^2$, and {\tt \$\\int\_{}0\^{}x f(t) dt\$} will
- give $\int_0^x f(t) dt$.
- \TeXref{144--145}
- \toindex{sum}
- \toindex{int}
-
- Another use of this type of input is for expressions
- involving limits. You can use
- {\tt \$\\lim\_\lb n\\to \\infty\rb (\lb n+1 \\over n\rb)\^{}n = e\$}
- to get $\lim_{n\to \infty} ({n+1\over n})^n = e$.
- \toindex{lim}
-
- \exercise Typeset the following expression: $\lim_{x\to 0}
- (1+x)^{1\over x}=e$.
-
- \exercise Typeset: The cardinality of $(-\infty, \infty)$ is $\aleph_1$.
-
- \exercise Typeset: $\lim_{x\to {0^+}} x^x = 1$.
- \bigskip
-
- Here's a hint to make integrals look a little nicer: look at the
- difference between $\int_0^x f(t) dt$ and $\int_0^x f(t)\, dt$\null.
- In the second case there is a little extra space after
- $f(t)$, and it looks nicer; {\tt \\,} was used to add the
- additional space.
- \toindex{,}
-
- \exercise Typeset the following integral: $\int_0^1 3x^2\,dx = 1$.
-
- \subsection{Roots, square and otherwise}
-
- To typeset a square root it is only necessary to use the construction
- {\tt \\sqrt\lb$\ldots$\rb}\null. Hence {\tt \$\\sqrt\lb x\^{}2+y\^{}2\rb\$}
- will give $\sqrt{x^2+y^2}$\null. Notice that \TeX{} takes care of the
- placement of symbols and the height and length of the radical.
- To make cube or other roots, the control words {\tt \\root} and {\tt
- \\of} are used. You get $\root n \of {1+x^n}$ from the
- input\TeXref{130--131} {\tt \$\\root n \\of \lb1+x\^{}n\rb\$}.
- \toindex{root}
- \toindex{sqroot}
-
- A possible alternative is to use the control word {\tt \\surd}; the
- input {\tt \$\\surd 2\$} will produce $\surd 2$.
- \toindex{surd}
-
- \exercise Typeset the following: $\sqrt2 \quad \sqrt {x+y\over x-y}
- \quad \root 3 \of {10}$ \quad $e^{\sqrt x}$.
-
- \exercise Typeset: $\|x\| = \sqrt{x\cdot x}$.
-
- \exercise Typeset:
- $\phi(t) = {1 \over \sqrt{2\pi}} \int_0^t e^{-x^2/2}\,dx$.
-
-
- \subsection{Lines, above and below}
-
- Use the constructions {\tt \\overline\lb$\ldots$\rb} and
- {\tt \\underline\lb$\ldots$\rb} to put lines above or below mathematical
- expressions. Hence {\tt \$\\overline\lb x+y\rb=\\overline x + \\overline
- y\$} gives $\overline{x+y}=\overline x + \overline y$\null.
- But notice that the lines over the letters are at
- different heights, and so some care is necessary. The use of {\tt
- \\overline\lb\\strut x\rb} will raise the height of the line
- over\TeXref{130--131} $x$\null.
- \toindex{overline}
- \toindex{underline}
-
- To underline non-mathematical text, use {\tt \\underbar\lb$\dots$\rb}.
- \toindex{underbar}
-
- \exercise Typeset the following: $\underline x \quad \overline y
- \quad \underline{\overline{x+y}}$.
-
-
- \subsection{Delimiters large and small}
-
- The most commonly used mathematical delimiters are brackets,
- braces, and parentheses. As we have seen, they may be produced
- by using {\tt [ ] \\\lb\ \\\rb\ ( )} to get $[\>]\>\{\>\}\>(\>)\>$.
- Sometimes larger delimiters increase the clarity of
- mathematical expressions, as in $$\bigl(a\times(b+c)\bigr) \bigl((a\times
- b)+c\bigr).$$ To make larger left delimiters the
- control words {\tt \\bigl}, {\tt \\Bigl}, {\tt \\biggl}, and {\tt
- \\Biggl} are used in front of the delimiter; similarly, {\tt \\bigr},
- {\tt \\Bigr}, {\tt \\biggr}, and {\tt \\Biggr} are used
- for the right delimiters. Hence {\tt \$\\Bigl[\$} and {\tt \$\\Bigr]\$}
- will produce $\Bigl[$ and $\Bigr]$.
- \TeXref{145--147}
-
- \toindex{bigl}
- \toindex{Bigl}
- \toindex{biggl}
- \toindex{Biggl}
- \toindex{bigr}
- \toindex{Bigr}
- \toindex{biggr}
- \toindex{Biggr}
-
- Here is a table to compare the size of some of the delimiters.
-
- %% \everycr can add 4 points between lines in the following table %%
- \everycr={\noalign{\vskip 4 pt}}
- \maketable [Delimiters of various sizes]
- \halign{
- \strut \hfil$#$ & \quad \tt# \hfil \quad\qquad
- &\hfil$#$ & \quad \tt# \hfil \quad\qquad
- &\hfil$#$ & \quad \tt# \hfil \quad\qquad
- &\hfil$#$ & \quad \tt# \hfil \cr
- \noalign{\hrule} \noalign{\smallskip}
- \{ & \\\lb & \} & \\\rb & ( & ( & ) & )\cr
- \bigl\{ & \\bigl\\\lb & \bigr\} & \\bigr\\\rb & \bigl( & \\bigl( & \bigr) &
- \\bigr)\cr
- \Bigl\{ & \\Bigl\\\lb & \Bigr\} & \\Bigr\\\rb & \Bigl( & \\Bigl( & \Bigr) &
- \\Bigr)\cr
- \biggl\{ & \\biggl\\\lb & \biggr\} & \\biggr\\\rb & \biggl(
- & \\biggl( & \biggr) & \\biggr) \cr
- \Biggl\{ & \\Biggl\\\lb & \Biggr\} & \\Biggr\\\rb & \Biggl(
- & \\Biggl( & \Biggr) & \\Biggr)\cr
- }
-
- \everycr={}
-
- If you want, you can let \TeX{} choose the size of delimiter by
- using the control words {\tt \\left} and {\tt \\right} before
- your delimiters.
- \TeXref{148}Thus {\tt \\left[$\ldots$\\right]} will cause the material
- to be enclosed by brackets that are appropriately big. {\bf Note
- well:} each use of a {\tt \\left} delimiter must have a matching
- {\tt \\right} delimiter (although the delimiters themselves may be
- different). Hence {\tt \$\$\\left|\lb a+b \\over
- c+d\rb\\right|.\$\$} gives $$\left|{a+b \over c+d}\right|.$$
-
- \maketable [Mathematical delimiters]
- \halign{
- \strut \hfill$#$ & \quad \tt # \qquad\qquad &
- \hfill$#$ & \quad \tt # \qquad\qquad &
- \hfill$#$ & \quad \tt # \cr
- \noalign{\hrule} \noalign{\smallskip}
- ( & ( & ) & ) & [ & [ \cr
- ] & ] &\{ & \\\lb & \} & \\\rb \cr
- \lfloor & \\lfloor &\rfloor &\\rfloor & \lceil & \\lceil \cr
- \rceil & \\rceil &\langle & \\langle & \rangle & \\rangle \cr
- / & / & \backslash & \\backslash &| & | \cr
- \| & \\| &\uparrow & \\uparrow & \Uparrow & \\Uparrow \cr
- \downarrow & \\downarrow & \Downarrow & \\Downarrow
- & \updownarrow & \\updownarrow \cr
- \Updownarrow & \\Updownarrow \cr
- }
-
- \toindex{lfloor}
- \toindex{rfloor}
- \toindex{lceil}
- \toindex{rceil}
- \toindex{langle}
- \toindex{rangle}
- \toindex{|}
- \toindex{uparrow}
- \toindex{Uparrow}
- \toindex{downarrow}
- \toindex{Downarrow}
- \toindex{updownarrow}
- \toindex{Updownarrow}
-
- \exercise Typeset $\bigl \lceil \lfloor x \rfloor \bigr \rceil
- \leq \bigl \lfloor \lceil x \rceil \bigr \rfloor$.
-
- \subsection{Those special functions}
-
- There are several types of functions that appear frequently in
- mathematical text. In an equation like ``$\sin^2x + \cos^2x =
- 1$'' the trigonometric functions ``sin'' and ``cos'' are in roman
- rather than italic type. This is the usual mathematical
- convention to indicate that it is a function being described and
- not the product of three variables. The control words {\tt
- \\sin} and {\tt \\cos} will use the right typeface automatically.
- Here is a table of these and some other special functions:
- \TeXref{162}
-
- \maketable [Special mathematical functions]
- \halign{
- \strut \tt {\\}#\hfil && \quad \tt {\\}#\hfil \cr
- \noalign{\hrule} \noalign{\smallskip}
- sin & cos & tan & cot & sec & csc & arcsin & arccos \cr
- arctan & sinh & cosh & tanh & coth & lim & sup & inf \cr
- limsup & liminf & log & ln & lg & exp & det & deg \cr
- dim & hom & ker & max & min & arg & gcd & Pr \cr
- }
-
- \toindex{sin}
- \toindex{cos}
- \toindex{tan}
- \toindex{cot}
- \toindex{sec}
- \toindex{csc}
- \toindex{arcsin}
- \toindex{arccos}
- \toindex{arctan}
- \toindex{sinh}
- \toindex{cosh}
- \toindex{tanh}
- \toindex{coth}
- \toindex{lim}
- \toindex{sup}
- \toindex{inf}
- \toindex{limsup}
- \toindex{liminf}
- \toindex{log}
- \toindex{ln}
- \toindex{lg}
- \toindex{exp}
- \toindex{det}
- \toindex{deg}
- \toindex{dim}
- \toindex{hom}
- \toindex{ker}
- \toindex{max}
- \toindex{min}
- \toindex{arg}
- \toindex{gcd}
- \toindex{Pr}
-
- \exercise Typeset: $\sin(2\theta) = 2\sin\theta\cos\theta \quad
- \cos(2\theta) = 2\cos^2\theta - 1 $.
-
- \exercise Typeset: $$\int \csc^2x\, dx = -\cot x+ C
- \qquad \lim_{\alpha\to 0} {\sin\alpha \over \alpha} = 1
- \qquad \lim_{\alpha\to \infty} {\sin\alpha \over \alpha} = 0.$$
-
- \exercise Typeset: $$\tan(2\theta) = {2\tan\theta \over
- 1-\tan^2\theta}.$$
-
-
- \subsection{Hear ye, hear ye!}
-
- There is a particular macro that is used in almost every
- mathematical paper, and is different enough to require a special
- explanation. This is the {\tt \\proclaim} macro. It is used when
- stating theorems, corollaries, propositions, and the like. The
- paragraph following {\tt \\proclaim} is broken into two parts:
- the first part goes up to and including the first period that is
- followed by a space, and the second part is the rest of the
- paragraph. \TeXref{202--203}The idea is that the first part
- should be something like ``Theorem 1.'' or ``Corollary B.'' The
- second part is the statement of the theorem or corollary. Here
- is an example:
- \toindex{proclaim}
-
- \beginliteral
- \proclaim Theorem 1 (H.~G.~Wells). In the country of the blind,
- the one-eyed man is king.
- @endliteral
-
- \noindent gives
-
- \proclaim Theorem 1 (H.~G.~Wells). In the country of the blind,
- the one-eyed man is king.
-
- The statement of the theorem may contain mathematical expressions, of
- course.
-
- \vfill\eject
- \exercise Typeset:
- \nobreak
- \proclaim Theorem (Euclid). There exist an infinite number of
- primes.
-
- \exercise Typeset:
- \proclaim Proposition 1.
- $\root n \of {\prod_{i=1}^n X_i} \leq {1 \over n} \sum_{i=1}^n X_i$
- with equality if and only if $X_1=\cdots=X_n$.
-
- \subsection{Matrices}
-
- Matrices are typeset using combinations of the alignment
- character {\tt \&} and the control word {\tt \\cr} to indicate
- the end of the line. Start with {\tt \$\$\\pmatrix\lb$\dots$\rb\$\$}.
- Into the space between the braces go the rows of the matrix, each
- one ended by {\tt \\cr}. The entries are separated by the
- {\tt \&}\null. For example the input
- \TeXref{176--178}
-
- \beginliteral
- $$\pmatrix{
- a & b & c & d \cr
- b & a & c+d & c-d \cr
- 0 & 0 & a+b & a-b \cr
- 0 & 0 & ab & cd \cr
- }.$$
- @endliteral
-
- \noindent
- gives as printed output
- $$\pmatrix{
- a & b & c & d \cr
- b & a & c+d & c-d \cr
- 0 & 0 & a+b & a-b \cr
- 0 & 0 & ab & cd \cr
- }.$$
- \toindex{pmatrix}
-
- The matrix entries in our examples have all been \centred{}
- within their columns with a little space on each side. They can
- be made flush right or flush left by inserting {\tt \\hfill}
- before or after the entry. Notice the differences between the
- following example and the previous one.
-
- \beginliteral
- $$\pmatrix{
- a & b & c \hfill & \hfill d \cr
- b & a & c+d & c-d \cr
- 0 & 0 & a+b & a-b \cr
- 0 & 0 & ab \hfill & \hfill cd \cr
- }.$$
- @endliteral
-
- \noindent
- gives as printed output
-
- $$\pmatrix{
- a & b & c \hfill & \hfill d \cr
- b & a & c+d & c-d \cr
- 0 & 0 & a+b & a-b \cr
- 0 & 0 & ab \hfill & \hfill cd \cr
- }.$$
-
-
- \vbox{
- \exercise Typeset
- $$ I_4 = \pmatrix{ 1 &0 &0 &0 \cr
- 0 &1 &0 &0 \cr
- 0 &0 &1 &0 \cr
- 0 &0 &0 &1 \cr}$$
- }
-
- It's possible to have matrices that use other delimiters. Using
- {\tt \\matrix} instead of {\tt \\pmatrix} will leave off the
- parentheses, so the delimiters must be explicitly included using
- {\tt \\left} and {\tt \\right}. Here is how we can change the
- matrix of our first example.
- \toindex{matrix}
- \toindex{left}
- \toindex{right}
-
- \beginliteral
- $$ \left |
- \matrix{
- a & b & c & d \cr
- b & a & c+d & c-d \cr
- 0 & 0 & a+b & a-b \cr
- 0 & 0 & ab & cd \cr
- }
- \right | $$
- @endliteral
-
- \noindent
- gives as printed output
- $$ \left |
- \matrix{
- a & b & c & d \cr
- b & a & c+d & c-d \cr
- 0 & 0 & a+b & a-b \cr
- 0 & 0 & ab & cd \cr
- }
- \right | $$
-
- It's even possible to use {\tt \\left.} and {\tt \\right.} to
- indicate that the opening or closing delimiter is deleted (note
- the use of the period).
-
- \exercise Use a matrix construction to typeset
-
- $$ |x| = \left\{ \matrix{ x & x \ge 0 \cr
- -x & x \le 0 \cr} \right.$$
-
- This exercise and more general constructions of this type
- may also be typeset using the {\tt \\cases} macro.
- \TeXref{175}
-
- Sometimes ellipses are used within matrices. The control words
- {\tt \\cdots}, {\tt \\vdots}, and {\tt \\ddots} can be used to
- insert horizontal, vertical, and diagonal dots.
-
- Thus we can use
- \beginliteral
- $$ \left [
- \matrix{
- aa & \cdots & az \cr
- \vdots & \ddots & \vdots \cr
- za & \cdots & zz \cr
- }
- \right ] $$
- @endliteral
-
- \noindent
- to get as printed output
- $$ \left [
- \matrix{
- aa & \cdots & az \cr
- \vdots & \ddots & \vdots \cr
- za & \cdots & zz \cr
- }
- \right ] $$
-
-
- Matrices may also be typeset in-line, but they are pretty ugly
- unless they have a small number of rows.
-
-
- \subsection{Displayed equations}
-
- All of the mathematics covered so far has identical input whether
- it is to be typeset in-line or displayed. At this point we'll
- look at some situations that apply to displayed equations only.
-
- The first is that of aligning multiline displays. This is done with
- the alignment character {\tt \&} and the control words {\tt \\cr} and
- {\tt \\eqalign}. Starting with {\tt \$\$\\eqalign\lb$\dots$\rb\$\$},
- the equations to be aligned are entered with each one terminated by
- {\tt \\cr}. In each equation there should be one alignment symbol
- {\tt \&} to indicate where the alignment should take place. This is
- usually done at the equal signs, although it is not necessary to do
- so. For example
- \TeXref{190--192}
- \toindex{eqalign}
-
- \beginliteral
- $$\eqalign{
- a+b &= c+d \cr
- x &= w + y + z \cr
- m + n + o + p &= q \cr
- }$$
- @endliteral
-
-
- \noindent
- yields
- $$\eqalign{
- a+b &= c+d \cr
- x &= w + y + z \cr
- m + n + o + p &= q \cr
- }$$
-
- Displayed equations can be numbered at either the right or left
- margin. When the control word {\tt \\eqno} appears in a displayed
- equation, everything after the control word is put at the right
- margin. Hence {\tt \$\$ x+y=z. \\eqno (1)\$\$} yields
- $$ x+y=z. \eqno (1)$$
- To number an equation at the left margin, use {\tt \\leqno}
- in place of {\tt \\eqno}.
- \toindex{eqno}
- \toindex{leqno}
-
- It's possible to number aligned equations by using the control
- word {\tt \\eqalignno}. The alignment character {\tt \&} is
- used to separate the equation from the equation number.
- \beginliteral
- $$\eqalignno{
- a+b &= c+d & (1) \cr
- x &= w + y + z \cr
- m + n + o + p &= q & * \cr
- }$$
- @endliteral
-
- \noindent
- yields
- $$\eqalignno{
- a+b &= c+d & (1) \cr
- x &= w + y + z \cr
- m + n + o + p &= q & * \cr
- }$$
-
- Use {\tt \\leqalignno} to put the equation numbers on the left.
- \TeXref{192--193}
- \toindex{eqalignno}
- \toindex{leqalignno}
-
- Finally, suppose some text needs to appear in the middle of a
- displayed equation. This can be done by putting it in an hbox.
- We will describe hboxes in more detail in the next section.
- For now we want to use them to temporarily resume using ordinary
- roman type and to also allow the insertion of space between
- words (remember that all spaces are ignored when typesetting
- mathematics). Hence
- {\tt \$\$X=Y \\hbox\lb{} if and only if \rb x=y.\$\$} will give
- $$X=Y \hbox{ if and only if } x=y.$$
- Note carefully the spaces in the hbox.
-
- \exercise Do some of the challenge problems on pages 180--181 of The
- \TeX book.
-
-
-
-
- \section{All in a row}
-
- It's not uncommon to want to put a table in the middle of some
- text. Fortunately \TeX{} makes it easy to do this. In fact there
- are two separate methods of aligning text. The first is by using
- the tabbing environment. This is similar to setting the tab
- stops on a typewriter. Each line is handled individually,
- according to set tab columns, but with greater flexibility than
- that provided by a typewriter. The second is the horizontal
- alignment environment which typesets the whole table at once
- using a prescribed pattern.
-
- \subsection{Picking up the tab}
-
- To align material using the tabbing environment, you must first
- set the tab positions using the {\tt \\settabs} control word.
- Having done this, a line to use these tabs starts with the
- control symbol {\tt \\+ } and ends with {\tt \\cr } (remember
- that the actual spacing on lines in the input file in
- unimportant). \toindex{settabs}
-
- The easiest way to use the {\tt \\settabs} control word is to put
- the text into equal columns.
- \TeXref{231}
- Using {\tt \\settabs 4 \\columns} will set the tabs that will
- produce four equal columns. The tabbing is then done by using
- the alignment character {\tt \&} to move to the next tab stop.
- So, for example, \toindex{columns}
-
- \beginliteral
- \settabs 4 \columns
- \+ British Columbia & Alberta & Saskatchewan & Manitoba \cr
- \+ Ontario & Quebec & New Brunswick & Nova Scotia \cr
- \+ & Prince Edward Island & Newfoundland \cr
- @endliteral
-
-
- \noindent
- will produce the table
- \vskip\baselineskip
-
- \settabs 4 \columns
- \+ British Columbia & Alberta & Saskatchewan & Manitoba \cr
- \+ Ontario & Quebec & New Brunswick & Nova Scotia \cr
- \+ & Prince Edward Island & Newfoundland \cr
-
- Notice that it is possible to skip over some tab positions, and
- it is not necessary to use all of the tabs in a given line. To
- make the same table using five columns, it is only necessary to
- use {\tt \\settabs 5 \\columns} to reset the tab stops; then the
- same three lines from the last example will produce:
- \vskip\baselineskip
-
- \settabs 5 \columns
- \+ British Columbia & Alberta & Saskatchewan & Manitoba \cr
- \+ Ontario & Quebec & New Brunswick & Nova Scotia \cr
- \+ & Prince Edward Island & Newfoundland \cr
-
- In this example, the columns are smaller, of course. In fact
- there are two overlapping entries in the last row. This is
- because \TeX{} will tab to the next tab position even if (unlike
- a typewriter) it means going backward on the page.
-
- There is an interesting relationship between grouping and
- tabbing. The {\tt \\settabs} values are only applicable to the
- group in which it is defined, as would be expected. Thus it is
- possible to temporarily change the tab settings by grouping
- within braces. In addition, each table entry is in a group of
- its own. Hence we may make a single entry boldface, for example,
- by using {\tt \\bf} without braces. In addition, for any column
- but the last one it is possible to \centre{} the entry or to
- align it either on the left or on the right, or to fill a column
- with a line or dots. Each entry has an implicit {\tt \\hfil} at
- the end so that it will be at the left of the column by default.
- Adding {\tt \\hfil} at the beginning of the entry will then cause
- it to be \centred{}, just as with the {\tt \\line} control word.
- Adding {\tt \\hfill} to the beginning will cause the entries to
- be pushed to the right ({\tt \\hfill} acts just like {\tt \\hfil}
- in that it absorbs excess space; when both {\tt \\hfil} and {\tt
- \\hfill} appear, the {\tt \\hfill} takes precedence).
- \toindex{hfill}
-
- \beginliteral
- \settabs 4 \columns
- \+ \hfil British Columbia & \hfill Alberta \qquad & \bf Saskatchewan
- @hskip 2.5in & Manitoba \cr
- \+ \hfil Ontario & \hfill Quebec \qquad & \bf New Brunswick
- @hskip 2.5in & Nova Scotia \cr
- \+ \hfil --- & \hfill * \qquad & \bf Newfoundland
- @hskip 2.5in & Prince Edward Island \cr
- \+ \dotfill && \hrulefill & \cr
- @endliteral
-
- \noindent
- will produce a table with the first column \centred{}, the second
- column flush right with a {\tt \\qquad} of padding, and the third
- column boldface. The control words {\tt \\dotfill} and {\tt \\hrulefill}
- give alternative column entries.
- \toindex{dotfill}
- \toindex{hrulefill}
- \vskip\baselineskip
-
- \settabs 4 \columns
- \+ \hfil British Columbia & \hfill Alberta \qquad & \bf Saskatchewan
- & Manitoba \cr
- \+ \hfil Ontario & \hfill Quebec \qquad & \bf New Brunswick
- & Nova Scotia \cr
- \+ \hfil --- & \hfill * \qquad & \bf Newfoundland &
- Prince Edward Island \cr
- \+ \dotfill && \hrulefill & \cr
-
- \exercise Take the table of Canadian provinces above and \centre{} each
- entry within its column.
-
- The tab positions can be set with much more flexibility than just
- in equal columns. The general pattern is to use a sample line of
- the form {\tt \\settabs \\+ $\ldots$ \& $\ldots$ \& $\ldots$ \\cr}.
- The spacing between the alignment characters {\tt \&}
- determines the position of the tabs. For example, {\tt \\settabs
- \\+ \\hskip 1 in \& \\hskip 2 in \& \\hskip 1.5 in \& \\cr} would
- set the first tab one inch from the left margin, the next another
- two inches further in, and the third 1.5 inches more. It's also
- possible to use text to determine the distance between tabs. So,
- for example, another possible sample line is
- {\tt \\settabs \\+ \\quad Province \\quad \& \\quad Population \\quad
- \& \\quad Area \\quad \& \\cr}.
- The tab column would then be just wide enough to accept the headings
- with a quad of space on each side. Here's a more complete example:
-
- \beginuser \obeyspaces
- \\settabs \\+ \\quad Year \\quad \& \\quad Price \\quad
- \& \\quad Dividend \& \\cr
- \\+ \\hfill Year \\quad \& \\quad Price \\quad \& \\quad Dividend \\cr
- \\+ \\hfill 1971 \\quad \& \\quad 41--54 \\quad \& \\qquad \$2.60 \\cr
- \\+ \\hfill 2 \\quad \& \\quad 41--54 \\quad \& \\qquad \$2.70 \\cr
- \\+ \\hfill 3 \\quad \& \\quad 46--55 \\quad \& \\qquad \$2.87 \\cr
- \\+ \\hfill 4 \\quad \& \\quad 40--53 \\quad \& \\qquad \$3.24 \\cr
- \\+ \\hfill 5 \\quad \& \\quad 45--52 \\quad \& \\qquad \$3.40 \\cr
- \enduser
-
- \noindent
- gives \TeXref{247}
- \vskip\baselineskip
-
- \settabs \+ \quad Year \quad & \quad Price \quad & \quad
- Dividend \quad & \cr
- \+ \hfill Year \quad & \quad Price \quad & \quad Dividend \cr
- \+ \hfill 1971 \quad & \quad 41--54 \quad & \qquad \$2.60 \cr
- \+ \hfill 2 \quad & \quad 41--54 \quad & \qquad \$2.70 \cr
- \+ \hfill 3 \quad & \quad 46--55 \quad & \qquad \$2.87 \cr
- \+ \hfill 4 \quad & \quad 40--53 \quad & \qquad \$3.24 \cr
- \+ \hfill 5 \quad & \quad 45--52 \quad & \qquad \$3.40 \cr
-
- \exercise Take the table given above and move it closer to the
- \centre{} of the page.
-
- \exercise One way to \centre{} a block of text, possibly several
- lines long, is to use: {\tt \$\$\\vbox\lb$\ldots$\rb\$\$}. Use
- this to \centre{} the table given above. Does the
- {\tt \\settabs} line need to be included in the {\tt \\vbox}?
-
- \exercise Improve your last result by putting a line under the
- column heads. The control word {\tt \\hrule} will insert a
- horizontal line if introduced between two rows of a table. Now
- repeat with the control word {\tt \\strut} after the {\tt \\+ }
- of the line containing the column heads. (A {\tt \\strut}
- effectively makes the spacing between lines a little greater. The
- size can be altered from the default.)\TeXref{82} Note the extra
- space that results.
- \toindex{strut}
-
- \exercise Make the following table with decimal alignment, that
- is, with the decimal points above each other (think of the dollar
- figure as being right aligned and the cents figure as being left
- aligned against the decimal point):
- \medskip
- \settabs \+ \hskip 2 in & \hskip .75in & \hskip 1cm& \cr
- \+ &Plums &\hfill\$1&.22 \cr
- \+ &Coffee &\hfill1&.78 \cr
- \+ &Granola &\hfill1&.98 \cr
- \+ &Mushrooms & &.63 \cr
- \+ &{Kiwi fruit} & &.39 \cr
- \+ &{Orange juice} &\hfill1&.09 \cr
- \+ &Tuna &\hfill1&.29 \cr
- \+ &Zucchini & &.64 \cr
- \+ &Grapes &\hfill1&.69 \cr
- \+ &{Smoked beef} & &.75 \cr
- \+ &Broccoli &\hfill\underbar{\ \ 1}&\underbar{.09} \cr
- \+ &Total &\hfill \$12&.55 \cr
-
-
- \exercise Devise a method to make a rough table of contents by using
- {\tt settabs} and having entries looking something like:\hfil\break
- \leftline{\tt Getting Started \\dotfill \& \\hfill 1}
- \leftline{\tt All Characters Great and Small \\dotfill \& \\hfill 9.}
-
- \subsection{Horizontal alignment with more sophisticated patterns}
-
- The {\tt \\settabs} environment is not difficult to use, and once
- the pattern is set, it can be used repeatedly in different
- portions of the text that follows. It does have some drawbacks,
- however. For one, the column size must be set before the entries
- are known. Also, even though in one case we wanted the third
- column to be boldface, it had to be specified in each line.
- These problems can be handled more easily by using the {\tt
- \\halign} environment.
- \TeXref{235--238}
- \toindex{halign}
-
-
- The general pattern in the {\tt \\halign} is as follows:
- \beginuser
- \\halign\lb{} <template line> \\cr
- <first display line> \\cr
- <second display line> \\cr
- $\vdots$
- <last display line> \\cr
- \rb
- \enduser
-
- Both the template line and the display lines are divided into
- sections by the alignment symbol {\tt \&}\null. In the template
- line each section uses control words in the same manner as does
- {\tt \\line\lb\rb}\null. The control word {\tt \\hfil}, for
- example, can be used to display flush left, flush right, or \centred.
- Fonts can be changed using {\tt \\bf}, {\tt \\it}, etc.
- Text may also be entered in the template line. In addition the
- special symbol {\tt \#} must appear once in each section. Each
- display line is then set by substituting each section of the
- display line into its corresponding section of the template line
- at the occurrence of the {\tt \#}\null.
-
- Consider the following example:
-
- \beginuser
- \\halign\lb\\hskip 2 in \$\#\$\& \\hfil \\quad \# \\hfil \& \\qquad \$\#\$
- \hskip 3in \& \\hfil \\quad \# \\hfil \\cr
- \\alpha \& alpha \& \\beta \& beta \\cr
- \\gamma \& gamma \& \\delta \& delta \\cr
- \\epsilon \& epsilon \& \\zeta \& zeta \\cr
- \rb
- \enduser
-
- \noindent The template line indicates that the first section of
- the typeset text will always be set two inches in from the left
- and also be set as mathematics. The second section will be \centred{}
- after adding a quad of space on the left. The third
- and fourth sections are handled similarly. Here is the result:
- \vskip\baselineskip
-
- \halign{\hskip 2in $#$& \hfil\quad # \hfil & \qquad $#$
- & \hfil\quad # \hfil\cr
- \alpha & alpha & \beta & beta \cr
- \gamma & gamma & \delta & delta \cr
- \epsilon & epsilon & \zeta & zeta \cr
- }
-
- In this case the first display line is formed by substituting {\tt
- \\alpha} for the first {\tt \#} in the template line, {\tt alpha} for
- the second {\tt \#}, {\tt \\beta} for the third and {\tt beta} for
- the fourth. The whole line is then saved for setting. This
- continues until all the lines are accumulated, and then they are set
- with each column being as wide as necessary to accept all of its
- entries (an implication of this accumulation process is that a table
- with too many entries could cause \TeX{} to run out of memory; it's
- better not to set tables that are more than a page or so long).
-
- Hence the template line establishes the pattern for the table entries
- and the display lines insert the individual entries.
-
- Sometimes horizontal and vertical lines are used to delimit
- entries in a table. To put in horizontal lines, we use {\tt \\hrule},
- just as we did in the {\tt \\settabs} environment.
- However, we don't want the rule to be aligned according to the
- template, so we use the control word {\tt \\noalign}. Hence
- horizontal lines are inserted by putting {\tt \\noalign\lb\\hrule\rb};
- vertical lines are inserted by putting {\tt \\vrule}
- in either the template or the display line. But still all is not
- completely straightforward. Suppose we take our last example and
- change the template to get vertical lines and also insert
- horizontal lines.
- \toindex{noalign}
-
- \beginuser
- \\halign\lb\\hskip 2in\\vrule\\quad \$\#\$\\quad \& \\vrule \\hfil\\quad %
- \# \\hfil
- \hskip 2 in \& \\quad \\vrule \\quad \$\#\$\\quad
- \hskip 2 in \& \\vrule\\hfil \\quad \# \\quad \\hfil \\vrule \\cr
- \\noalign\lb\\hrule\rb
- \\alpha \& alpha \& \\beta \& beta \\cr
- \\noalign\lb\\hrule\rb
- \\gamma \& gamma \& \\delta \& delta \\cr
- \\noalign\lb\\hrule\rb
- \\epsilon \& epsilon \& \\zeta \& zeta \\cr
- \\noalign\lb\\hrule\rb
- \rb
- \enduser
-
- \noindent
- doesn't give exactly what we want.
-
- \vskip\baselineskip
-
- \halign{\hskip 2in\vrule\quad $#$\quad & \vrule \hfil\quad # \hfil
- & \quad \vrule \quad $#$\quad & \vrule \hfil\quad # \quad \hfil
- \vrule \cr
- \noalign{\hrule}
- \alpha & alpha & \beta & beta \cr
- \noalign{\hrule}
- \gamma & gamma & \delta & delta \cr
- \noalign{\hrule}
- \epsilon & epsilon & \zeta & zeta \cr
- \noalign{\hrule}
- }
-
- There are several deficiencies: the most obvious is the extended
- horizontal lines, but also the text looks somewhat squashed into
- the boxes. In addition, the text has a little extra space on the
- right rather than being perfectly \centred. As in the {\tt \\settabs}
- environment, lines can be made taller by including the control
- word {\tt \\strut} in the template.\TeXref{82} A further problem
- can occur when the page is set since \TeX{} may spread lines
- apart slightly to improve the appearance of the page. This would
- leave a gap between the vertical lines, so we use the control
- word {\tt \\offinterlineskip} within the {\tt \\halign} to avoid
- this. Finally we can get rid of the lines sticking out on the
- left by deleting the {\tt \\hskip 2 in} from the template line.
- To move the table to the same position we use {\tt \\moveright}.
- Finally, we can see how to \centre{} the text by noting that the
- extra space occurs in the template line after the {\tt \#} where
- the text is inserted.
- Hence we can improve our result by using
- \toindex{offinterlineskip}
- \toindex{moveright}
-
- \beginuser
- \\moveright 2 in
- \\vbox\lb\\offinterlineskip
-
- \\halign\lb\\strut \\vrule \\quad \$\#\$\\quad \&\\vrule \\hfil \\quad %
- \#\\quad \\hfil
- \&\\vrule \\quad \$\#\$\\quad \&\\vrule \\hfil \\quad \#\\quad \\hfil %
- \\vrule \\cr
- \\noalign\lb\\hrule\rb
- \\alpha \& alpha \& \\beta \& beta \\cr
- \\noalign\lb\\hrule\rb
- \\gamma \& gamma \& \\delta \& delta \\cr
- \\noalign\lb\\hrule\rb
- \\epsilon \& epsilon \& \\zeta \& zeta \\cr
- \\noalign\lb\\hrule\rb
- \rb\rb
- \enduser
-
- \noindent
- to get
- \vskip\baselineskip
-
- \moveright 2 in
- \vbox{\offinterlineskip
- \halign{\strut \vrule \quad $#$\quad &\vrule \hfil \quad #\quad \hfil
- &\vrule \quad $#$\quad &\vrule \hfil \quad #\quad \hfil
- \vrule \cr
- \noalign{\hrule}
- \alpha & alpha & \beta & beta \cr
- \noalign{\hrule}
- \gamma & gamma & \delta & delta \cr
- \noalign{\hrule}
- \epsilon & epsilon & \zeta & zeta \cr
- \noalign{\hrule}
- }
- }
-
-
-
- In general, if we want to construct a table with boxed entries
- that is \centred{} on the page, we can do so by putting the {\tt
- \\vbox} within a {\tt \\centerline\lb\rb}\null. But here is a
- trick that will produce a nicer result. If the {\tt \\vbox} is
- put in between double dollar signs, it will be typeset as
- displayed mathematics. Of course, there is no actual
- mathematics being displayed, but \TeX{} will put in a little
- extra space above and below the table as is appropriate for a
- display. Hence a \centred{} table with this nice spacing may be
- formed using the following four steps:
- (1) put a {\tt \\vbox} between double dollar signs,
- (2) put an {\tt \\offinterlineskip} and an {\tt \\halign} within
- the {\tt \\vbox},
- (3) in the {\tt \\halign} put a template line with a {\tt \\strut}
- in the beginning, and a {\tt \\vrule} surrounding each entry,
- (4) each row of the table should be preceded and followed by
- {\tt \\noalign\lb\\hrule\rb}.
-
- Here is the pattern to be followed:
-
- \beginuser
- \$\$\\vbox\lb
- \\offinterlineskip
- \\halign\lb
- \\strut \\vrule \# \& \\vrule \# \& \dots \& \\vrule \# \\vrule \\cr
- \\noalign\lb\\hrule\rb
- <first column entry> \& <second column entry> \& \dots %
- \& <last column entry> \\cr
- \\noalign\lb\\hrule\rb
- \dots
- \\noalign\lb\\hrule\rb
- <first column entry> \& <second column entry> \& \dots %
- \& <last column entry> \\cr
- \\noalign\lb\\hrule\rb
- \rb
- \rb\$\$
- \enduser
-
-
-
- \section{Rolling your own}
-
- In this section we'll create new control words. The making of
- these new definitions, also called macros, is one of the most
- powerful techniques available in \TeX\null. For the first
- application of this facility, we'll see how a new definition can
- save a lot of typing by substituting short strings for long ones.
-
- \subsection{The long and short of it}
-
- The control word {\tt \\def} is used to define new control words.
- The simplest form for doing this is {\tt \\def\\newname\lb$\ldots$\rb}.
- Then whenever {\tt \\newname} appears in your
- input file, it will be replaced by whatever is between the braces
- in the definition. Of course {\tt \\newname} must satisfy the
- convention for naming control sequences, that is, it must be a
- control word (all letters) or a control symbol (exactly one
- nonletter). So, for example, suppose you write a document that
- contains the phrase ``University of Manitoba'' many times. Then
- {\tt \\def\\um\lb University of Manitoba\rb} defines a new
- control sequence {\tt \\um} which can then be used at any time.
- The sentence {\tt I take courses at the \\um.}\ then makes
- sense. If the control word exists, your new definition will
- replace it (this includes the control words defined by \TeX{}, so
- a little care must be taken in the choice of name). Any
- definition is, however, local to the group in which it is
- defined. For example, \toindex{def}
-
- \beginuser
- \\def\\um\lb University of Manitoba\rb
- I took my first course at the \\um.
- \lb
- \\def\\um\lb Universit\\'e de Montr\\'eal\rb
- Then I took my next course at the \\um.
- \rb
- Finally I took my last course at the \\um.
- \enduser
-
- \noindent gives \medskip
-
- \def\um{University of Manitoba}
- I took my first course at the \um.
- {
- \def\um{Universit\'e de Montr\'eal}
- Then I took my next course at the \um.
- }
- Finally I took my last course at the \um.
-
- Remember that all spaces after a control word are absorbed; this
- includes the control words that you define. In the previous
- example, any space after {\tt \\um} would be ignored. However,
- the space after the first period and the space after the first
- opening brace are different; if you look closely at the end of
- the first sentence typeset using the example, you'll see some
- extra space. This can be eliminated by putting a {\tt \%} after
- the opening brace to make the rest of the line a comment. The
- same holds for the line with the last closing brace. Careful
- control of spaces often calls for the ``commenting out'' of the
- end of lines in this manner.
-
- Once a new control sequence has been defined, it may be used in
- new definitions. This is one way of making simple form letters.
- First let's define a simple letter.
-
- \beginuser
- \\def\\letter\lb
- \\par \\noindent
- Dear \\name,
- \
- This is a little note to let you know that your name is \\name.
- \
- \\hskip 2 in Sincerely yours,
- \\vskip 2\\baselineskip
- \\hskip 2 in The NameNoter
- \\smallskip \\hrule
- \rb
- \enduser
-
- \def\letter{
- \par \noindent
- Dear \name,
-
- This is a little note to let you know that your name is \name.
-
- \hskip 2 in Sincerely yours,
- \vskip 2\baselineskip\nobreak
- \hskip 2 in The NameNoter
- \smallskip \hrule
- }
-
- Now this letter uses the control word {\tt \\name}, which is
- undefined at this point. When {\tt \\letter} is used, the
- current value of {\tt \\name} will appear in the body of the
- letter. Hence
-
- \beginuser
- \\def\\name\lb Michael Bishop\rb
- \\letter
- \\def\\name\lb Michelle L\\'ev\\\^{}eque\rb
- \\letter
- \enduser
-
- \noindent will produce two copies of the letter, each with the
- correct name, followed by a horizontal rule:
-
- \def\name{Michael Bishop}
- \letter
- \goodbreak
- \def\name{Michelle L\'ev\^eque}
- \letter
-
- We could have put anything between the braces in
- {\tt \\def\\name\lb$\ldots$\rb}; it could be several paragraphs
- long and use other control sequences (although in this context it
- would be a little strange). Of course it is possible to use {\tt
- \\vfill \\eject} as part of the definition of {\tt \\letter} to
- eject the page when the letter is completed.
-
- \exercise Make a form letter that uses the control words {\tt \\name},
- {\tt \\address}, {\tt \\city}, {\tt \\\province}, and {\tt
- \\\postcode}.
-
- \exercise An unnumbered list of items is often made
- using {\tt \\item\lb\$\\bullet\$\rb}. Define a macro {\tt \\bitem}
- that does this, and use it for several paragraphs. Now change
- each bullet to a dash (note that a simple change in the macro
- propagates all the necessary changes in all of the paragraphs).
-
- \exercise Suppose that you are going to have to format several
- paragraphs in a paper using {\tt \\hangindent = 30 pt}, {\tt \\hangafter
- = 4}, and {\tt \\filbreak} (don't worry about what
- these control sequences actually do; the only important thing
- for now is that once they are set, they remain in effect for only
- one paragraph). Define a single control sequence {\tt \\setpar}
- which can then be put in front of each paragraph that needs to be
- so formatted.
-
-
- \subsection{Filling in with parameters}
-
- It's possible to use macros in much greater generality by
- allowing parameters to be passed. The idea is somewhat similar
- to the template line in the {\tt \\halign} environment. First,
- let's look at the case where there is one parameter. In this
- case a control sequence is defined by {\tt \\def\\newword\#1\lb
- $\ldots$\rb}\null. The symbol {\tt \#1} may appear between the
- braces (several times) in the definition of {\tt \\newword}. The
- material between the braces acts like a template. When {\tt
- \\newword\lb$\ldots$\rb} appears in the text, it will use the
- definition of {\tt \\newword} with the material between the
- braces inserted into the template at every occurrence of {\tt
- \#1} in the original definition. {\bf The spacing in the original
- definition is crucial here; there must be no spaces before the
- opening brace}.
-
- As an example, we could use the form letter of the last section in
- the following way:
-
-
- \beginuser
- \\def\\letter\#1\lb
- \\par \\noindent
- Dear \#1,
- \vskip\baselineskip
- This is a little note to let you know that your name is \#1.
- \vskip\baselineskip
- \\hskip 2 in Sincerely yours,
- \\vskip 2\\baselineskip
- \\hskip 2 in The NameNoter
- \\smallskip \\hrule
- \rb
- \enduser
-
- \def\letter#1{
- \par \noindent
- Dear #1,
-
- This is a little note to let you know that your name is #1.
-
- \hskip 2 in Sincerely yours,
- \vskip 2\baselineskip
- \hskip 2 in The NameNoter
- \smallskip \hrule
- }
-
- Now we can use
-
- \beginuser
- \\letter\lb Michael Bishop\rb
- \\letter\lb Michelle L\\'ev\\\^{}eque\rb
- \enduser
-
- \noindent to get \medskip
- \letter{Michael Bishop}
- \goodbreak
- \letter{Michelle L\'ev\^eque}
-
- \def\displaytext#1{$$\vbox{\hsize=12cm #1}$$}
- \bigskip
- \displaytext{
- Now let's define
- {\tt\\def\\displaytext\#1\lb \$\$\\vbox\lb\\hsize = 12 cm \#1\rb\$\$\rb}
- as a new macro to display text.
- Then {\tt \\displaytext\lb$\ldots$\rb} will cause the material
- between the braces to be put in a paragraph with width 12 \centimetre
- s and then \centred{} with some space added above and
- below as is appropriate for a display. This paragraph was set
- using this {\tt \\displaytext} macro.
- }
-
- The parameter of a macro can be no more than one paragraph long.
- If a new paragraph is encountered as part of a parameter, an
- error will be generated. This is a safety feature, for
- otherwise the accidental omission of a closing brace would cause
- \TeX{} to eat up the rest of the file as the parameter.
-
- \exercise Define a macro {\tt \\yourgrade} so that {\tt
- \\yourgrade\lb89\rb} will cause the following sentence to be
- typeset: The grade you received is 89\%\null. It should be able
- to work with any other percentage, of course.
- \medbreak
-
- It's not really any harder to use more than one parameter. The form
- used to define a new control word with two parameters is
- {\tt \\def\\newword\#1\#2\lb$\ldots$\rb}. The definition between the
- braces may have {\tt \#1} and {\tt \#2} occurring in it, perhaps
- several times. When {\tt \\newword\lb$\ldots$\rb\lb$\ldots$\rb}
- appears in the text, the material between the first set of braces
- replaces {\tt \#1} in the definition and the material between the
- second set of braces replaces {\tt \#2} in the definition. Here is
- an example followed by its result:
-
- \beginuser
- \\def\\talks\#1\#2\lb \#1 talks to \#2.\rb
- \\talks\lb John\rb\lb Jane\rb
- \\talks\lb Jane\rb\lb John\rb
- \\talks\lb John\rb\lb me\rb
- \\talks\lb She\rb\lb Jane\rb
- \enduser
-
- \def\talks#1#2{#1 talks to #2.}
- \talks{John}{Jane}
- \talks{Jane}{John}
- \talks{John}{me}
- \talks{She}{Jane}
-
- \exercise In a manner similar to the previous exercise, define a
- macro {\tt \\yourgrade} so that {\tt \\yourgrade\lb89\rb\lb85\rb}
- causes the following sentence to be typeset: You received a grade
- of 89\% on your first exam and a grade of 85\% on your second
- exam.
-
- \exercise Write a macro {\tt \\frac} so that {\tt \\frac\lb
- a\rb\lb b\rb} will typeset the fraction ${a\over b}$.
-
- \bigskip
- It's important not to put any spaces before the first brace in
- the definition. If you do, \TeX{} will interpret the definition
- differently from the way described here. For more than two
- parameters, the method of definition is similar. To define a
- control word with three parameters, start with
- {\tt \\def\\newword\#1\#2\#3\lb$\ldots$\rb}. Then {\tt \#1},
- {\tt \#2} and {\tt \#3} may occur between the braces. When
- {\tt \\newword\lb$\ldots$\rb\lb$\ldots$\rb\lb$\ldots$\rb}
- appears in the text, the material between each set of braces
- replaces its corresponding symbol in the definition of the
- control word. The parameters may go up to {\tt \#9}.
-
- \subsection{By any other name}
-
- Sometimes it's convenient to be able to give a control word an
- alternative name. For example, if you prefer a different spelling,
- you might want to call the control word {\tt \\centerline} by the
- name of {\tt \\centreline}. This can be done by using the {\tt
- \\let} control word. The use of {\tt \\let \\centreline =
- \\centerline} now makes a new (as well as the old) control word
- available. This can also be used with mathematical names as with
- {\tt \\let \\tensor = \\otimes}. It is then possible to use
- \TeXref{206--207}
-
- \toindex{let}
- \toindex{centreline}
- \toindex{tensor}
-
- \let\tensor=\otimes
- \beginuser
- \$\$ (A \\tensor B) (C \\tensor D) = AC \\tensor BD. \$\$
- \enduser
-
- \noindent to get
-
- $$ (A \tensor B) (C \tensor D) = AC \tensor BD. $$
-
-
-
- \exercise Define control sequences {\tt \\ll}, {\tt \\cl}, and
- {\tt \\rl} that are equivalent to {\tt \\leftline}, {\tt \\centerline},
- and {\tt \\rightline}.
-
- The {\tt \\let} control word allows users to name their own
- control sequences. This allows a personalized set of control
- sequences that may be used in place of the ones provided by \TeX{}
- when desired.
-
- \section{To err is human}
-
- In some ways \TeX{} is not completely divine. \TeX{} will respond
- to invalid input by giving an error message to the screen if you
- are using it interactively and also to the log file. Because
- \TeX{} is very complicated, the actual point where the error is
- detected may be deep within the program, so a full report of the
- error may be rather long and involved. Not only that, \TeX{}
- will try to recover from errors, and will report what was done in
- that process. For this reason the reading of error messages may
- be a little difficult for the uninitiated. The key is to know
- what is important from your perspective and what can be safely
- ignored. So let's look at some typical errors and the messages
- that they generate.
-
- \subsection{The forgotten bye}
-
- The first mistake that we'll look at is one that everyone makes
- at some time, namely, the omission of {\tt \\bye} at the end of
- the file. If you're using \TeX{} interactively, an asterisk \hfil
- \break
- \leftline{\tt *}
- will be printed on the screen and nothing will happen since,
- having not been told to finish up, \TeX{} is waiting for input
- (from your keyboard). Whatever you type in will be appended to
- whatever has been input from your files. The usual response is
- to type {\tt \\bye<CR>}\fnote{{\tt <CR>} is the key
- used to end a line of input. It might be called the carriage
- return, enter, or simply the return key on your terminal.
- Sometimes it is indicated by a large left arrow.} since that will
- finish things up.
-
- \subsection{The misspelled or unknown control sequence}
-
- Using a misspelled or other control sequence unknown to \TeX{} is
- a common error. If \TeX{} is being run as a batch job, an error
- message is printed and the job goes on ignoring the control
- sequence. When using \TeX{} interactively, it is possible to
- repair errors (of course this does not change the original input
- file, so that must be done when the \TeX{} job is completed).
- Suppose we have a \TeX{} input file consisting of the following
- two lines:
- \beginuser
- \\line\lb The left side \\hfli the right side\rb
- \\bye
- \enduser
-
- The control word should be {\tt \\hfil}, of course. Here is the
- message that would be sent to your terminal:
-
- \beginuser
- \obeyspaces
- ! Undefined control sequence.
- l.1 \\line\lb The left side \\hfli
- \ the right side\rb
- ?
- \enduser
-
- The first line starts with {\tt !} and gives the error message.
- Next comes the line number on which the error occurred and the
- part of the line that was read successfully. The next line gives
- the continuation of the line after the error. At this point the
- question mark means that \TeX{} is waiting for a response. There
- are several legal ones:
- \nobreak
- \maketable [Responses to \TeX{} error messages]
- \halign{
- \strut \hfil # \hfil & \quad \hfil \tt # \hfil & # \hfil\cr
- \bf Desired response & \bf Input to \TeX{} & \bf \hfil Result\cr
- \noalign{\hrule} \noalign{\smallskip}
- Help & h<CR>& Reason for stopping listed on terminal.\cr
- Insert & i<CR>& Next line inserted into \TeX{} input file.\cr
- Exit & x<CR>& Exit from \TeX\null. Completed pages to DVI file.\cr
- Scroll & s<CR>& List message and continue after minor errors.\cr
- Run & r<CR>& List message and continue after any errors.\cr
- Quiet & q<CR>& All terminal listings suppressed.\cr
- Carry on &<CR> & \TeX{} continues as best it can.\cr
- }
-
- In our last example a reasonable response might be to enter {\tt
- h<CR>} to get a help message, then {\tt i<CR>} to insert more
- text, (at which point \TeX{} responds with {\tt insert> } and
- finally {\tt \\hfil} as the correct control word. Here is the
- result:
-
-
- \beginuser
- ? h <CR>
- The control sequence at the end of the top line
- of your error message was never \\def'ed. If you have
- misspelled it (e.g., `\\hobx'), type `I' and the correct
- spelling (e.g., `I\\hbox'). Otherwise just continue,
- and I'll forget about whatever was undefined.
-
- ? i <CR>
- insert>\\hfil
- [1]
- \enduser
-
- The final {\tt [1]} means that the first (and only) page has
- been completed and sent to the DVI file. The original input file
- still needs to be fixed, of course.
-
- \subsection{The misnamed font}
-
- A misspelled font name is an error similar to the misspelled
- control sequence. The error message is different and a little
- confusing at first. Suppose for example the following appears in
- your input file:
-
- \leftline{\tt \\font\\sf = cmss01}
-
- It should be {\tt cmss10}, that is, the numbers have been
- transposed. Here are the error and help messages:
-
- \beginuser \obeyspaces
- ! Font \\sf=cmss01 not loadable: Metric (TFM) file not found.
- <to be read again>
- \ \\par
- \\bye ->\\par
- \ \\vfill \\supereject \\end
- l.2 \\bye
-
- ? h <CR>
- I wasn't able to read the size data for this font,
- so I will ignore the font specification.
- [Wizards can fix TFM files using TFtoPL/PLtoTF.]
- You might try inserting a different font spec;
- e.g., type `I\\font<same font id>=<substitute font name>'.
- \enduser
-
- The TFM (\TeX{} font metric) file is an auxiliary file that is
- used by \TeX\null. So this strange message is just telling you
- that the font you defined doesn't exist on your computer system.
-
- \subsection{Mismatched mathematics}
-
- Another common error is to use {\tt \$} or {\tt \$\$} to start a
- mathematical expression and then to forget the second {\tt \$}
- or {\tt \$\$} when finished. The text that follows is then
- treated as mathematics, and to make matters worse, if more
- mathematics is started by a new {\tt \$} or {\tt \$\$}, it will
- then be treated as ordinary text. Needless to say, error
- messages galore may be generated. \TeX{} will attempt to correct
- the problem by inserting a new {\tt \$} or {\tt \$\$}; in any
- case, the problem is corrected by the end of the paragraph since
- a new paragraph will automatically start as ordinary text.
-
- Consider the following correct input and its output:
- \beginuser
- Since \$f(x) > 0\$, \$a<b\$, and \$f(x)\$ is continuous, we know that
- \$\\int\_{}a\^{}b f(x)\\,dx >0\$.
- \enduser
-
- Since $f(x) > 0$, $a<b$, and $f(x)$ is continuous, we know that
- $\int_a^b f(x)\,dx >0$.
-
- If we now leave out the second dollar sign in {\tt \$f(x)\$} we
- then get the following error and help messages:
-
- \beginuser \obeyspaces
- ! Missing \$ inserted.
- <inserted text>
- \ \$
- <to be read again>
- \ \\intop
- \\int ->\\intop
- \ \\nolimits
- l.2 \$\\int
- \ \_{}a\^{}b f(x)\\,dx >0\$.
- ? h <CR>
- I've inserted a begin-math/end-math symbol since I think
- you left one out. Proceed, with fingers crossed.
-
- ?
- \enduser
-
- The line starting with {\tt !} tells us what has been done. The
- line starting with {\tt l.2} shows us where we were in the input
- file when the error occurred. As in our other examples, the part
- of the line successfully read, that is, through {\tt \\int},
- appears on one line, and the continuation appears on the next
- line. The remaining material may seem somewhat obscure. These
- intermediate messages show what was happening further in the guts
- of the \TeX{} program when the error occurred. The newer user
- may ignore them.
-
- Here is what you get as output after \TeX{} tries to recover from
- the error.
-
- Since $f(x) > 0$, $a<b$, and $f(x) is continuous, we know that
- \int_a^b f(x)\,dx >0$.
-
- There is a stretch of text that is italic with no spacing. This
- is typical for normal text being processed as mathematics; if you
- see this in your output, you have almost certainly left out a
- {\tt \$} or {\tt \$\$}.
-
- \subsection{Mismatched braces}
-
- It's easy to forget or mismatch the closing braces when making
- groups. The result may be a relatively benign error, or it may
- be catastrophic. Suppose, for example, you have {\tt \lb\\bf A
- bold title } in your text with the closing right brace omitted.
- The result will be the same as if no opening brace were there;
- that is, the rest of the paper will be boldface if no other font
- changes are made. You will get the following message at the end
- of the file:
-
- {\tt (\\end occurred inside a group at level 1)}
-
- If you had made the same mistake twice, then there would be two
- more opening braces than closing braces, and you would get the
- message:
-
- {\tt (\\end occurred inside a group at level 2)}
-
- \TeX{} doesn't know that the closing brace is missing until it
- reaches the end of the input file. Hence the message doesn't
- tell you where you went wrong. If the location of the missing
- brace isn't obvious, it's always possible to insert {\tt \\bye}
- halfway through your document. Running \TeX{} again will cause
- only the first half to be processed, and if the error message
- persists, you will know that the error is in the first half of
- the document. By moving the {\tt \\bye} to different places, the
- error can be localized. Also, looking at the output often
- reveals what has gone wrong.
-
- Missing opening braces are much easier to spot. Here is a two
- line input file and the resulting error and help messages:
-
- \beginuser
- \\bf Here is the start\rb, but there is the finish.
- \\bye
- \enduser
-
- \beginuser \obeyspaces
- ! Too many \rb's.
- l.1 \\bf Here is the start\rb
- \ , but there is the finish.
-
- ? h <CR>
- You've closed more groups than you opened.
- Such booboos are generally harmless, so keep going.
- \enduser
-
- It's quite possible, of course, that the line that is supposed to
- have the missing left brace will not be on the line where \TeX{}
- catches the error.
-
- A mismatched brace in the definition of a new control sequence
- can cause a major error. Since such a definition may include
- several paragraphs, it may not be caught by the end of a
- paragraph, but, rather will just keep piling more and more text
- into the unfinished definition. It's even possible for \TeX{} to
- run out of memory as it keeps eating up more text! This is called
- a ``runaway definition''.
- \TeXref{206}
- Here is a two line input file with a runaway definition:
-
- \vbox{
- \beginuser
- \\def\\newword\lb the def
- \\newword
- \\bye
- \enduser
- }
-
- Here are the resulting error and help messages:
-
- \beginuser \obeyspaces
- Runaway definition?
- ->the def
- ! Forbidden control sequence found while scanning definition of \\newword.
- <inserted text>
- \ \rb
- <to be read again>
- \ \\bye
- l.3 \\bye
-
- ? h <CR>
- I suspect you have forgotten a `\rb', causing me
- to read past where you wanted me to stop.
- I'll try to recover; but if the error is serious,
- you'd better type `E' or `X' now and fix your file.
-
- ? <CR>
- No pages of output.
- \enduser
-
- This is obviously a serious error. If it occurs at the beginning
- of a file (as in the previous example), there will be no output
- at all!
-
- If a closing brace is left out while using a macro with
- parameters, the runaway definition will be terminated at the end
- of the paragraph. So if {\tt \\def\\newword\#1\lb$\ldots$\rb} has
- been defined and you use {\tt \\newword\lb$\dots$ } without the
- closing brace, then at most one paragraph will be ruined.
- \TeXref{205}
-
- In short, when an error occurs, make a note of the line number to
- see how much of the input file has been read, and also the line
- starting with an exclamation point to get a short description of
- the error. If the error is still not clear, ask \TeX{} for more
- information by typing {\tt h<CR>}. For small errors, \TeX{} can
- carry on quite a way if you just keep hitting the {\tt <CR>}.
-
-
-
-
- \section{Digging a little deeper}
-
- In this section we look at a few topics that allow \TeX{} to be
- used with greater flexibility or efficiency. As the documents
- being produced get longer, different techniques can help make
- their creation easier.
-
- \subsection{Big files, little files}
-
- \TeX{} can read and write files as it runs. This makes it
- possible to use files that are smaller and more convenient to
- handle by creating a master file that reads the smaller files in
- the proper order. This document, for example, consists of ten
- sections plus an introduction. In addition, there are macros
- that are used for all sections. The macros can be put in a file
- called, say, {\tt macros.tex}, the introduction can be put in {\tt
- intro.tex}, and each section put in its own file. The control
- word {\tt \\input} is then used to read in a file. In general,
- {\tt \\input filename} will cause the file called {\tt
- filename.tex} to be read in and processed immediately, just as if
- the text of {\tt filename.tex} had been part of the file that
- read it in. This file may input other files. In fact it's often
- convenient to make a single file that reads in smaller pieces,
- perhaps as follows:
- \toindex{input}
-
- \beginuser
- \\input macros
- \\input intro
- \\input sec1
- \\input sec2
- \\input sec3
- \\input sec4
- \\input sec5
- \\input sec6
- \\input sec7
- \\input sec8
- \\input sec9
- \\input sec10
- \enduser
-
- While the text is still being heavily edited, it's possible to
- process only some of the files by putting a {\tt \%} at the
- beginning of each line that contains a file to be skipped (this
- is sometimes called ``commenting out'' the unwanted files).
-
- The {\tt \\input} control word also allows the use of
- predesigned macros. The macros for a memorandum, for example,
- might be put in a file called {\tt memo.tex}. These macros might
- set up the right {\tt \\hsize}, {\tt \\vsize} and other
- parameters, and might stamp the time and date. Once this has
- been set up, all memoranda may be started with {\tt \\input memo}
- to make them come out with a common format.
-
- Be sure that you don't have the control word {\tt \\bye} in your
- input file or the \TeX{} program will stop at that point.
-
- \exercise Make a \TeX{} input file that reads in a second file.
- Try reading in the second file twice using the {\tt \\input}
- control word twice.
-
- \subsection{Larger macro packages}
-
- Designing macros that can be used with many types of documents
- is obviously useful. Most universities, for example, have
- specific and often complicated format requirements for theses. A
- collection of macros, that is, a macro package that meets all
- these specifications could be somewhat time consuming to design
- and could be quite long. It is possible to use the {\tt \\input}
- command to use such a macro package, just as it is possible to
- use it with your own macros. But \TeX{} has a better facility
- for larger packages.
-
- A macro package can be put in a special form that can be quickly
- read by \TeX\null. This is called a {\sl format file}, and
- the exact form is of technical interest only. The important
- thing is it allows \TeX{} to be run with many new control
- sequences predefined. Certain commands called {\sl primitives\/}
- are part of the definition of \TeX\null.
-
- What we have described in this manual is sometimes called {\sl
- plain \TeX\/}, and consists of the \TeX{} primitives plus a set
- of macros in a format file (that is usually included in \TeX{}
- automatically) called {\tt plain.fmt}. For the curious, any
- control word can be viewed using {\tt \\show}. The command {\tt
- \\show\\centerline} will display
- \beginliteral
- > \centerline=macro:
- #1->\line {\hss #1\hss }.
- @endliteral
- \noindent
- on the screen and in the log file. You can use {\tt \\show} with
- your own macros, too. If you end up using several macro
- packages, you can use the {\tt \\show} command to see if a
- particular macro is defined.
-
- Many computer \centre{}s have the \LaTeX{} macro package. This
- package allows the user to create an index, a table of contents,
- and a bibliography automatically. It also has the ability to
- insert some elementary graphic figures such as circles, ovals,
- lines, and arrows. \LaTeX{} also uses special predifined files
- called {\sl style files\/} to set up
- specific page parameters. Many different style files are
- available; some journals will accept papers on a magnetic medium
- for direct processing if they are prepared using \LaTeX{} and a
- designated style file. It is not difficult to shift from \TeX{}
- to \LaTeX\null. A user's guide by the author of the macro
- package, Leslie Lamport, is available:
- {\bf \LaTeX{}: A document preparation system}%
- \fnote{Addison-Wesley, Reading, Massachusetts, 1986,
- ISBN 0-201-15790-X.}.
-
- The American Mathematical Society uses the \AMSTeX{} macro
- package for its journals. It is readily available from that
- Society, and papers may be submitted to their journals on a
- magnetic medium using \AMSTeX\null. A manual by Michael Spivak,
- {\bf The Joy of \TeX{}}\fnote{American Mathematical
- Society, 1986, ISBN 0-8218-2999-8}, is available from the
- American Mathematical Society.
-
- Other macro packages exist, and undoubtedly more will be
- developed. They are usually of modest cost and can be very
- effective in some circumstances. The \TeX{} Users Group
- announces the existence of new macro packages in its
- publications.
-
- \subsection{Horizontal and vertical lines}
-
- Making horizontal and vertical lines is easy using \TeX\null.
- When typing in text, {\tt \\hrule } will cause the current
- paragraph to end, will draw a horizontal line whose width is the
- current value of {\tt \\hsize}, and then will continue on with a
- new paragraph. It's possible to specify the width of the hrule
- as, for example, with {\tt \\hrule width 5 cm}; also you can use
- {\tt \\vskip} or {\tt \\bigskip} to put some space above or below
- the hrule. Here is an example:
-
- \beginuser
- \\parindent = 0 pt \\parskip = 12 pt
- Here is the text before the hrule.
- \\bigskip
- \\hrule width 3 in
- And here is some text after the hrule.
- \enduser
-
- \noindent that produces
- \vfill\eject
-
- {
- \parindent = 0 pt
- Here is the text before the hrule.
- \bigskip
- \hrule width 3 in
- And here is some text after the hrule.
- }
-
- In fact this hrule not only has width of three inches, but also
- by default has a height (the amount by which the hrule extends
- above the baseline on which the type is being set) of 0.4 points
- and a depth (the amount by which the hrule extends below the
- baseline on which the type is being set) of 0 points. Each of
- these parameters can be individually set. Thus if we change the
- last example to say
-
- {\tt \\hrule width 3 in height 2 pt depth 3 pt } we get
-
- {
- \parindent = 0 pt
- Here is the text before the hrule.
- \bigskip
- \hrule width 3 in height 2 pt depth 3 pt
- And here is some text after the hrule.
- }
-
- The three parameters {\tt width}, {\tt height}, and {\tt depth} may
- be given in any order.
- \toindex{hrule}
- \TeXref{221--222}
-
- A vrule may be defined analogously to an hrule by specifying the
- {\tt width}, {\tt height}, and {\tt depth} if desired.
- \TeXref{221--222}
- But, unlike the hrule, the vrule will not automatically start a
- new paragraph when it appears. By default the vrule will be 0.4
- points wide, and will be as high as the line on which it is being
- set. Hence
-
- \toindex{vrule}
-
- \beginuser
- Here is some text before the vrule
- \\vrule\\
- and this follows the vrule.
- \enduser
-
- \noindent will give
-
- Here is some text before the vrule
- \vrule\
- and this follows the vrule.
-
- \exercise Make three horizontal lines that are 15 points apart,
- 3 inches in length, and one inch in from the left margin.
-
- Although we usually think of hrules and vrules as horizontal and
- vertical lines, they need not necessarily be used that way. For
- example:
-
- \beginuser
- \\noindent
- Name: \\vrule height 0 pt depth 0.4 pt width 3 in
- \enduser
-
- \noindent will give
-
- \noindent
- Name: \vrule height 0 pt depth 0.4 pt width 3 in
-
- \exercise Make the following grid (each box is 1 \centimetre{} square):
- \medskip
- \settabs \+ \hskip 1cm&\hskip 1 cm&\hskip 1 cm& \cr
- \moveright 2 in
- \vbox{
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- }
-
-
- \subsection{Boxes within boxes}
-
- We have already seen (in our discussion of line shapes) that
- vboxes and hboxes are objects that may be overfull or underfull.
- In this section we will look at these boxes in a bit more detail.
- They may be stacked or lined up to allow a variety of positions
- for text on the page.
-
- An hbox is formed by using {\tt \\hbox\lb $\ldots$\rb}\null.
- Once the material between the braces has been put into an hbox,
- it is set and can not be further split (this means that material
- that must go on one line can be put into an hbox, and it will
- then remain as one unit). It's possible to specify the size of
- an hbox.\TeXref{64--66} Thus {\tt \\hbox to 5 cm\lb contents of
- the box\rb } will produce an hbox exactly five \centimetre{}s
- wide containing the typeset text ``contents of the box''.
- It's easy to get an underfull or overfull box in this way. An
- underfull box can be avoided by using {\tt \\hfil} to absorb the
- extra space. When no dimension is given, an hbox is formed that
- is just wide enough to hold the enclosed text.
- \toindex{hbox}
-
- Similarly, vboxes are formed using {\tt \\vbox\lb $\ldots$\rb}.
- What makes these boxes interesting is that when a vbox contains
- hboxes, these hboxes are stacked one above the other and set as a
- unit. Similarly, an hbox can contain vboxes, which will be set in
- a row. Suppose we take three hboxes and put them in a vbox:
- \toindex{vbox}
-
- \beginuser \obeyspaces
- \\vbox\lb
- \ \\hbox\lb{}Contents of box 1\rb
- \ \\hbox\lb{}Contents of box 2\rb
- \ \\hbox\lb{}Contents of box 3\rb
- \ \rb
- \enduser
-
- \noindent gives
- \vskip \baselineskip
- \vbox{
- \hbox{Contents of box 1}
- \hbox{Contents of box 2}
- \hbox{Contents of box 3}
- }
-
- Now suppose we take another vbox:
-
- \beginuser \obeyspaces
- \\vbox\lb
- \ \\hbox\lb{}Contents of box 4\rb
- \ \\hbox\lb{}Contents of box 5\rb
- \ \rb
- \enduser
-
- These two vboxes can be put into an hbox; this will cause them to
- be placed side by side. In other words
-
- \beginuser \obeyspaces
- \\hbox\lb
- \ \\vbox\lb
- \ \\hbox\lb{}Contents of box 1\rb
- \ \\hbox\lb{}Contents of box 2\rb
- \ \\hbox\lb{}Contents of box 3\rb
- \ \rb
- \ \\vbox\lb
- \ \\hbox\lb{}Contents of box 4\rb
- \ \\hbox\lb{}Contents of box 5\rb
- \ \rb
- \ \rb
- \enduser
-
- \noindent gives
- \vskip \baselineskip
- \hbox{
- \vbox{
- \hbox{Contents of box 1}
- \hbox{Contents of box 2}
- \hbox{Contents of box 3}
- }
- \vbox{
- \hbox{Contents of box 4}
- \hbox{Contents of box 5}
- }
- }
-
-
- Notice that the two vboxes are aligned so that the bottoms are
- level; also there is a little space at the beginning of each line
- and also between the vboxes. Actually, the reason these spaces
- appear is rather subtle. Unless a line ends in a control word,
- there is always a space between the last entry in one line and
- the first one in the next line. For this reason the space between
- the vboxes comes from the end of the line containing the closing
- brace of the first vbox. Similarly, the spaces at the beginning
- of the line is caused by the space after the opening brace of the
- hbox. These spaces can be avoided by ``commenting out'' the end of
- the line, that is, by putting a {\tt \%} immediately after the
- closing brace of the first vbox or the opening brace of the hbox.
- If you try to put some vboxes together and accidentally get extra
- space by forgetting to comment out the end of the line, you're in
- good company. Some very able and experienced \TeX{} users have
- done the same thing!
-
- Extra space, say one \centimetre, can be added by putting an
- {\tt \\hskip 1 cm } between the vboxes. They can be aligned so
- that the tops are level by using {\tt \\vtop } instead of
- {\tt \\vbox}. Making these two changes results in:
-
- \toindex{vtop}
- \vskip \baselineskip
- \hbox{
- \vtop{
- \hbox{Contents of box 1}
- \hbox{Contents of box 2}
- \hbox{Contents of box 3}
- }
- \hskip 1 cm
- \vtop{
- \hbox{Contents of box 4}
- \hbox{Contents of box 5}
- }
- }
-
-
- We can combine vboxes, hboxes, vrules, and hrules to get boxed
- text. How might we construct such a box? One way is to take the
- material to be boxed and put it in an hbox preceded and followed
- by a vrule. Then put this in a vbox with hrules above and below
- it. This gives us:
-
- \beginuser \obeyspaces
- \\vbox\lb
- \ \\hrule
- \ \\hbox\lb\\vrule{} The text to be boxed \\vrule\rb
- \ \\hrule
- \ \rb
- \enduser
-
- \noindent which results in
- \vskip \baselineskip
- \vbox{
- \hrule
- \hbox{\vrule{} The text to be boxed \vrule}
- \hrule
- }
-
- This produces boxed material, but there is no margin around it
- and so it looks very cramped (of course \TeX{} is just giving us
- what we asked for). We can improve the spacing by putting a {\tt
- \\strut} at the beginning of the hbox to make it a little taller
- and deeper. This gives us:
- \vskip \baselineskip
- \vbox{
- \hrule
- \hbox{\strut \vrule{} The text to be boxed \vrule}
- \hrule
- }
-
- \def\boxtext#1{%
- \vbox{%
- \hrule
- \hbox{\strut \vrule{} #1 \vrule}%
- \hrule
- }%
- }
-
- \exercise Why is it that we were forced to add extra space above
- and below the text but not before and after it?
-
-
- \exercise Use the method of boxing material to put text \centred{}
- in a box which extends from the left to the right margin.
-
- \exercise By stacking nine little boxes, make the following magic square:
- \vskip\baselineskip
-
- \moveright 2 in \vbox{\offinterlineskip
- \hbox{\boxtext 6\boxtext 1\boxtext 8}
- \hbox{\boxtext 7\boxtext 5\boxtext 3}
- \hbox{\boxtext 2\boxtext 9\boxtext 4}
- }
-
- \exercise Notice that the magic square in the previous exercise
- has internal lines that are twice as thick as the outside ones.
- Also, there is a tiny space at the intersection of the internal
- lines. Fix up the magic square so this doesn't happen.
-
- \def\boxtext#1 {%
- \vbox{%
- \hrule
- \hbox{\strut \vrule #1\vrule}%
- \hrule
- }
- }
-
- \exercise Write a macro { \tt \\boxtext\#1\lb$\ldots$\rb } which
- will take the text between the braces and put a box around it. Test
- your macro by making up a sentence with every other word boxed.
- I'm \boxtext not quite \boxtext sure why \boxtext someone
- would \boxtext do this \boxtext since the \boxtext result is \boxtext
- pretty strange. Note how the baseline and the bottom of
- the surrounding boxes align.
-
- \def\boxtext#1 {%
- \lower 3.5pt \hbox{%
- \vbox{%
- \hrule
- \hbox{\strut \vrule #1\vrule}%
- \hrule
- }
- }
- }
-
- It's easy to move boxes up, down, left, or right on the page. A
- {\tt \\vbox} can be moved to the right one inch by using {\tt
- \\moveright 1 in \\vbox\lb\dots\rb}. To move it to the left,
- use {\tt \\moveleft}. Similarly, an {\tt \\hbox} can be moved up
- or down using {\tt \\raise} or {\tt \\lower}.
- \toindex{moveright}
- \toindex{moveleft}
- \toindex{raise}
- \toindex{lower}
-
- \exercise Rewrite the {\tt \\boxtext} macro from the previous
- exercise so that all of the text is aligned (hint: by default the
- depth of a strut is 3.5 points). This would give a sentence like
- the following: I'm \boxtext not quite \boxtext sure why \boxtext
- someone would \boxtext do this \boxtext since the \boxtext result
- is \boxtext pretty strange.
-
- It's possible to fill a box with either an hrule or with dots.
- The idea is to use {\tt \\hrulefill } or {\tt \\dotfill } in the
- hbox.
-
- \beginuser
- \\hbox to 5 in\lb Getting Started\\hrulefill 1\rb
- \\hbox to 5 in\lb All Characters Great and Small\\hrulefill 9\rb
- \\hbox to 5 in\lb The Shape of Things to come\\hrulefill 17\rb
- \\hbox to 5 in\lb No Math Anxiety Here!\\hrulefill 30\rb
- \enduser
-
- \noindent gives
- \vskip \baselineskip
-
- \hbox to 5 in{Getting Started\hrulefill 1}
- \hbox to 5 in{All Characters Great and Small\hrulefill 9}
- \hbox to 5 in{The Shape of Things to come\hrulefill 17}
- \hbox to 5 in{No Math Anxiety Here!\hrulefill 30}
-
- If {\tt \\hrulefill} is replaced by {\tt \\dotfill} we get
- \vskip \baselineskip
-
- \hbox to 5 in{Getting Started\dotfill 1}
- \hbox to 5 in{All Characters Great and Small\dotfill 9}
- \hbox to 5 in{The Shape of Things to come\dotfill 17}
- \hbox to 5 in{No Math Anxiety Here!\dotfill 30}
-
- \exercise Make a boxed headline appear at the top of the page
- that is like the one used in this manual.
-
-
-
- \section{Control word list}
-
- Here is a list of the control words given in this manual.
- If you want more detail about these words than is given here,
- check the index of {\bf The \TeX book}.
-
- \vskip 2\baselineskip
- \centerline{Control symbols}
- \vskip\baselineskip
-
- \settabs \+ \hskip 1.5 in & \hskip 1.65in & \hskip 1.3in & \cr
- {\tt
- \+ \\\sp{} 4 & \\!\ 34 & \\" 11 & \\' 11 \cr
- \+ \\, 34 & \\.\ 11 & \\/ 16 & \\; 34 \cr
- \+ \\= 11 & \\> 34 & \\\# 10& \\\$ 6 \cr
- \+ \\\% 6 & \\\& 10 & \\\char '173{} 10 & \\\char '175{} 10 \cr
- \+ \\\underbar{ } 10 & \\` 11 & \\{\accent "7E } 10 & \\{\accent 94 } 10 \cr
- \+ \\| 40 \cr
- }
-
- \vskip 2\baselineskip
- \centerline{Control words}
- \vskip\baselineskip
-
- {\tt
- \+ \\AA 12 & \\aa 12 & \\acute 36 & \\AE 12 \cr
- \+ \\ae 12 & \\aleph 37 & \\alpha 35 & \\angle 37 \cr
- \+ \\approx 37 & \\arccos 41 & \\arcsin 41 & \\arctan 41 \cr
- \+ \\arg 41 & \\ast 36 & \\b 12 & \\backslash 37 \cr
- \+ \\bar 36 & \\baselineskip 22 & \\beta 35 & \\bf 16 \cr
- \+ \\biggl 40 & \\Biggl 40 & \\biggr 40 & \\Biggr 40 \cr
- \+ \\bigl 40 & \\Bigl 40 & \\bigr 40 & \\Bigr 40 \cr
- \+ \\bigskip 26 & \\break 26 & \\breve 36 & \\bullet 36 \cr
- \+ \\bye 4 & \\c 12 & \\cap 36 & \\cdot 36 \cr
- \+ \\centerline 26 & \\centreline 60 & \\check 36 & \\chi 35 \cr
- \+ \\circ 35 & \\columns 48 & \\cos 41 & \\cosh 41 \cr
- \+ \\cot 41 & \\coth 41 & \\csc 41& \\cup 36 \cr
- \+ \\d 12 & \\ddag 27 & \\ddot 36 & \\def 55 \cr
- \+ \\deg 41 & \\delta 35 & \\Delta 35 & \\det 41 \cr
- \+ \\diamond 36 & \\dim 41 & \\div 36 & \\dot 36 \cr
- \+ \\dotfill 49 & \\dots 14 & \\downarrow 41 & \\Downarrow 41 \cr
- \+ \\eject 20 & \\ell 37 & \\endinsert 26 & \\epsilon 35 \cr
- \+ \\eqalign 45 & \\eqalignno 46 & \\eqno 46 & \\equiv 37 \cr
- \+ \\eta 35 & \\exists 37 & \\exp 41 & \\flat 37 \cr
- \+ \\folio 28 & \\font 16 & \\footline 28 & \\footnote 27 \cr
- \+ \\forall 37 & \\gamma 35 & \\Gamma 35 & \\gcd 41 \cr
- \+ \\geq 37 & \\grave 36 & \\H 12 & \\halign 51 \cr
- \+ \\hang 23 & \\hangafter 23 & \\hangindent 23 & \\hat 36 \cr
- \+ \\hbadness 29 & \\hbox 72 & \\headline 28 & \\hfil 27 \cr
- \+ \\hfill 26 & \\hfuzz 29 & \\hoffset 20 & \\hom 41 \cr
- \+ \\hrule 71 & \\hrulefill 49 & \\hsize 20 & \\hskip 27 \cr
- \+ \\hyphenation 30 & \\i 11 & \\Im 37 & \\in 37 \cr
- \+ \\inf 41 & \\infty 37 & \\input 68 & \\int 38 \cr
- \+ \\iota 35 & \\it 16 & \\item 24 & \\itemitem 24 \cr
- \+ \\j 11 & \\kappa 35 & \\ker 41 & \\L 12 \cr
- \+ \\l 12 & \\lambda 35 & \\Lambda 35 & \\langle 41 \cr
- \+ \\lceil 41 & \\left 44 & \\leftline 26 & \\leftskip 23 \cr
- \+ \\leq 37 & \\leqalignno 46 & \\leqno 46 & \\let 61 \cr
- \+ \\lfloor 41 & \\lg 41 & \\lim 38 & \\liminf 41 \cr
- \+ \\limsup 41 & \\line 26 & \\ln 41 & \\log 41 \cr
- \+ \\lower 75 & \\magnification 21 & \\magstep 16 & \\matrix 44 \cr
- \+ \\max 41 & \\medskip 26 & \\min 41 & \\moveleft 75 \cr
- \+ \\moveright 75 & \\mu 35 & \\nabla 37 & \\narrower 23 \cr
- \+ \\natural 37 & \\neg 37 & \\ni 37 & \\noalign 52 \cr
- \+ \\noindent 22 & \\nopagenumbers 5 & \\not 36 & \\nu 35 \cr
- \+ \\O 12 & \\o 12 & \\odot 36 & \\OE 12 \cr
- \+ \\oe 12 & \\offinterlineskip 53 & \\omega 35 & \\Omega 35 \cr
- \+ \\ominus 36 & \\oplus 36 & \\otimes 36 & \\over 37 \cr
- \+ \\overfullrule 29 & \\overline 39 & \\P 27 & \\pageno 28 \cr
- \+ \\par 7 & \\parallel 37 & \\parindent 23 & \\parshape 24 \cr
- \+ \\parskip 22 & \\partial 37 & \\perp 37 & \\phi 35 \cr
- \+ \\Phi 35 & \\pi 35 & \\Pi 35 & \\pmatrix 43 \cr
- \+ \\Pr 41 & \\proclaim 42 & \\psi 35 & \\Psi 35 \cr
- \+ \\qquad 34 & \\quad 34 & \\raggedright 27 & \\raise 75 \cr
- \+ \\rangle 41 & \\rceil 41 & \\Re 37 & \\rfloor 41 \cr
- \+ \\rho 35 & \\right 44 & \\rightline 26 & \\rightskip 23 \cr
- \+ \\rm 16 & \\root 39 & \\S 27 & scaled 16 \cr
- \+ \\sec 41 & \\settabs 48 & \\sharp 37 & \\sigma 35 \cr
- \+ \\Sigma 35 & \\sim 37 & \\simeq 37 & \\sin 41 \cr
- \+ \\sinh 41 & \\sl 16 & \\smallskip 26 & \\sqroot 39 \cr
- \+ \\ss 12 & \\star 36 & \\strut 50 & \\subset 37 \cr
- \+ \\subseteq 37 & \\sum 38 & \\sup 41 & \\supset 37 \cr
- \+ \\supseteq 37 & \\surd 39 & \\t 12 & \\tan 41 \cr
- \+ \\tanh 41 & \\tau 35 & \\tensor 60 & \\TeX{} 5 \cr
- \+ \\tensor 60 & \\the 28 & \\theta 35 & \\Theta 35 \cr
- \+ \\tilde 36 & \\times 36 & \\tolerance 29 & \\topinsert 26 \cr
- \+ \\tt 16 & \\u 12 & \\underbar 39 & \\underline 39 \cr
- \+ \\uparrow 41 & \\Uparrow 41 & \\updownarrow 41 & \\Updownarrow 41 \cr
- \+ \\upsilon 35 & \\Upsilon 35 & \\v 12 & \\varepsilon 35 \cr
- \+ \\varphi 35 & \\varrho 35 & \\varsigma 35 & \\vartheta 35 \cr
- \+ \\vbadness 30 & \\vbox 71 & \\vec 36 & \\vee 36 \cr
- \+ \\vfill 20 & \\vglue 25 & \\voffset 20 & \\vrule 71 \cr
- \+ \\vsize 20 & \\vtop 74 & \\wedge 36 & \\widehat 36 \cr
- \+ \\widetilde 36 & \\xi 35 & \\Xi 35 & \\zeta 35 \cr
- }
-
- \ifwritinganswers
- \let\next=\relax
- \else
- \let\next=\endinput
- \datestamp
- \fi
-
- \next
-
- \def\beginliteral{
- \vskip\baselineskip
- \begingroup
- \obeylines
- \tt
- \catcode`\@=0\catcode`\~=12
- \catcode`\$=12\catcode`\&=12\catcode`\^=12\catcode`\#=12
- \catcode`\_=12\catcode`\=12
- \def\par{\leavevmode\endgraf}
- \catcode`\{=12\catcode`\}=12\catcode`\%=12\catcode`\\=12
- }
- \def\endliteral{\nobreak \vskip 6pt \endgroup}
-
-
- \section{I get by with a little help}
- Many of the exercises can be answered in several ways. If you
- like your way better than the way given below, by all means use
- it!
- \vskip 2\baselineskip
-
- \parskip=0pt \parindent=0pt
- \raggedright
- \hbadness=10000
-
- \hrule
- \beginliteral
- I like \TeX!
- Once you get the hang of it, \TeX{} is really easy to use.
- You just have to master the \TeX nical aspects.
- @endliteral
- I like \TeX! Once you get the hang of it, \TeX{} is really easy
- to use. You just have to master the \TeX nical aspects.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Does \AE schylus understand \OE dipus?
- @endliteral
- Does \AE schylus understand \OE dipus?
- \vskip \baselineskip \hrule
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- The smallest internal unit of \TeX{} is about 53.63\AA.
- @endliteral
- The smallest internal unit of \TeX{} is about 53.63\AA.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- They took some honey and plenty of money wrapped up in a {\it \$}5 note.
- @endliteral
- They took some honey and plenty of money wrapped up in a {\it \$}5 note.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \'El\`eves, refusez vos le\c cons! Jetez vos cha\^\i nes!
- @endliteral
- \'El\`eves, refusez vos le\c cons! Jetez vos cha\^\i nes!
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Za\v sto tako polako pijete \v caj?
- @endliteral
- Za\v sto tako polako pijete \v caj?
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Mein Tee ist hei\ss.
- @endliteral
- Mein Tee ist hei\ss.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Peut-\^etre qu'il pr\'ef\`ere le caf\'e glac\'e.
- @endliteral
- Peut-\^etre qu'il pr\'ef\`ere le caf\'e glac\'e.
- \vskip \baselineskip \hrule
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- ?`Por qu/'e no bebes vino blanco? !`Porque est/'a avinagrado!
- @endliteral
- ?`Por qu/'e no bebes vino blanco? !`Porque est/'a avinagrado!
- \vskip \baselineskip \hrule
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- M\'\i\'\j n idee\"en wordt niet be\"\i nvloed.
- @endliteral
- M\'\i\'\j n idee\"en wordt niet be\"\i nvloed.
- \vskip \baselineskip \hrule
-
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Can you take a ferry from \"Oland to \AA land?
- @endliteral
- Can you take a ferry from \"Oland to \AA land?
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- T\"urk\c ce konu\c san ye\u genler nasillar?
- @endliteral
- T\"urk\c ce konu\c san ye\u genler nasillar?
- \vskip \baselineskip \hrule
-
-
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- I entered the room and---horrors---I saw both my father-in-law and my
- mother-in-law.
- @endliteral
- I entered the room and---horrors---I saw both my father-in-law and my
- mother-in-law.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- The winter of 1484--1485 was one of discontent.
- @endliteral
- The winter of 1484--1485 was one of discontent.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- His ``thoughtfulness'' was impressive.
- @endliteral
- His ``thoughtfulness'' was impressive.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Frank wondered, ``Is this a girl that can't say `No!'?''
- @endliteral
- Frank wondered, ``Is this a girl that can't say `No!'?''
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- He thought, ``\dots and this goes on forever, perhaps to the last recorded
- syllable.''
- @endliteral
- He thought, ``\dots and this goes on forever, perhaps to the last recorded
- syllable.''
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Have you seen Ms.~Jones?
- @endliteral
- Have you seen Ms.~Jones?
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- Prof.~Smith and Dr.~Gold flew from
- Halifax N.~S. to Montr\'eal, P.~Q. via Moncton, N.~B.
- @endliteral
- Prof.~Smith and Dr.~Gold flew from
- Halifax N.~S. to Montr\'eal, P.~Q. via Moncton, N.~B.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \line{left end \hfil left tackle \hfil left guard \hfil @centre \hfil
- right guard \hfil right tackle \hfil right end}
- @endliteral
- \line{left end \hfil left tackle \hfil left guard \hfil \centre{} \hfil
- right guard \hfil right tackle \hfil right end}
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \line{left \hfil \hfil right-@centre \hfil right}
- @endliteral
- \line{left \hfil \hfil right-\centre{} \hfil right}
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \line{\hskip 1 in ONE \hfil TWO \hfil THREE}
- @endliteral
- \line{\hskip 1 in ONE \hfil TWO \hfil THREE}
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- i{f}f if{}f if{f}
- @endliteral
- i{f}f if{}f if{f}
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- I started with roman type {\it switched to italic type}, and
- returned to roman type.
- @endliteral
- I started with roman type {\it switched to italic type}, and
- returned to roman type.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $C(n,r) = n!/(r!\,(n-r)!)$
- @endliteral
- $C(n,r) = n!/(r!\,(n-r)!)$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $a+b=c-d=xy=w/z$
- $$a+b=c-d=xy=w/z$$
- @endliteral
- $a+b=c-d=xy=w/z$
- $$a+b=c-d=xy=w/z$$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $(fg)' = f'g + fg'$
- $$(fg)' = f'g + fg'$$
- @endliteral
- $(fg)' = f'g + fg'$
- $$(fg)' = f'g + fg'$$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\alpha\beta=\gamma+\delta$
- $$\alpha\beta=\gamma+\delta$$
- @endliteral
- $\alpha\beta=\gamma+\delta$
- $$\alpha\beta=\gamma+\delta$$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\Gamma(n) = (n-1)!$
- $$\Gamma(n) = (n-1)!$$
- @endliteral
- $\Gamma(n) = (n-1)!$
- $$\Gamma(n) = (n-1)!$$
- \vskip \baselineskip \hrule
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $x\wedge (y\vee z) = (x\wedge y) \vee (x\wedge z)$
- @endliteral
- $x\wedge (y\vee z) = (x\wedge y) \vee (x\wedge z)$
- \vskip \baselineskip \hrule
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $2+4+6+\cdots +2n = n(n+1)$
- @endliteral
- $2+4+6+\cdots +2n = n(n+1)$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\vec x\cdot \vec y = 0$ if and only if $\vec x \perp \vec y$.
- @endliteral
- $\vec x\cdot \vec y = 0$ if and only if $\vec x \perp \vec y$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\vec x\cdot \vec y \not= 0$ if and only if $\vec x \not\perp \vec y$.
- @endliteral
- $\vec x\cdot \vec y \not= 0$ if and only if $\vec x \not\perp \vec y$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $(\forall x\in \Re)(\exists y\in\Re)$ $y>x$.
- @endliteral
- $(\forall x\in \Re)(\exists y\in\Re)$ $y>x$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- ${a+b\over c}\quad {a\over b+c}\quad {1\over a+b+c} \not= {1\over a}+
- {1\over b}+{1\over c}$.
- @endliteral
- ${a+b\over c}\quad {a\over b+c}\quad {1\over a+b+c} \not= {1\over a}+
- {1\over b}+{1\over c}$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- What are the points where ${\partial \over \partial x} f(x,y) = {\partial \over
- \partial y} f(x,y) = 0$?
- @endliteral
- What are the points where ${\partial \over \partial x} f(x,y) = {\partial \over
- \partial y} f(x,y) = 0$?
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $e^x \quad e^{-x} \quad e^{i\pi}+1=0 \quad x_0 \quad x_0^2
- \quad {x_0}^2 \quad 2^{x^x}$.
- @endliteral
- $e^x \quad e^{-x} \quad e^{i\pi}+1=0 \quad x_0 \quad x_0^2
- \quad {x_0}^2 \quad 2^{x^x}$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\nabla^2 f(x,y) = {\partial^2 f \over\partial x^2}+ {\partial^2 f \over
- \partial y^2}$.
- @endliteral
- $\nabla^2 f(x,y) = {\partial^2 f \over\partial x^2}+ {\partial^2 f \over
- \partial y^2}$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\lim_{x\to 0} (1+x)^{1\over x}=e$.
- @endliteral
- $\lim_{x\to 0} (1+x)^{1\over x}=e$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- The cardinality of $(-\infty, \infty)$ is $\aleph_1$.
- @endliteral
- The cardinality of $(-\infty, \infty)$ is $\aleph_1$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\lim_{x\to {0^+}} x^x = 1$.
- @endliteral
- $\lim_{x\to {0^+}} x^x = 1$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\int_0^1 3x^2\,dx = 1$.
- @endliteral
- $\int_0^1 3x^2\,dx = 1$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\sqrt2 \quad \sqrt {x+y\over x-y} \quad \root 3 \of {10}$ \quad $e^{\sqrt x}$.
- @endliteral
- $\sqrt2 \quad \sqrt {x+y\over x-y} \quad \root 3 \of {10}$ \quad $e^{\sqrt x}$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\|x\| = \sqrt{x\cdot x}$.
- @endliteral
- $\|x\| = \sqrt{x\cdot x}$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\phi(t) = {1 \over \sqrt{2\pi}} \int_0^t e^{-x^2/2}\,dx$.
- @endliteral
- $\phi(t) = {1 \over \sqrt{2\pi}} \int_0^t e^{-x^2/2}\,dx$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\underline x \quad \overline y \quad \underline{\overline{x+y}}$.
- @endliteral
- $\underline x \quad \overline y \quad \underline{\overline{x+y}}$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\bigl \lceil \lfloor x \rfloor \bigr \rceil \leq \bigl \lfloor \lceil x \rceil
- \bigr \rfloor$.
- @endliteral
- $\bigl \lceil \lfloor x \rfloor \bigr \rceil \leq \bigl \lfloor \lceil x \rceil
- \bigr \rfloor$.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $\sin(2\theta) = 2\sin\theta\cos\theta
- \quad \cos(2\theta) = 2\cos^2\theta - 1 $.
- @endliteral
- $\sin(2\theta) = 2\sin\theta\cos\theta
- \quad \cos(2\theta) = 2\cos^2\theta - 1 $.
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $$\int \csc^2x\, dx = -\cot x+ C
- \qquad \lim_{\alpha\to 0} {\sin\alpha \over \alpha} = 1
- \qquad \lim_{\alpha\to \infty} {\sin\alpha \over \alpha} = 0.$$
- @endliteral
- $$\int \csc^2x\, dx = -\cot x+ C
- \qquad \lim_{\alpha\to 0} {\sin\alpha \over \alpha} = 1
- \qquad \lim_{\alpha\to \infty} {\sin\alpha \over \alpha} = 0.$$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $$\tan(2\theta) = {2\tan\theta \over 1-\tan^2\theta}.$$
- @endliteral
- $$\tan(2\theta) = {2\tan\theta \over 1-\tan^2\theta}.$$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \proclaim Theorem (Euclid). There exist an infinite number of primes.
- @endliteral
- \proclaim Theorem (Euclid). There exist an infinite number of primes.
-
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \proclaim Proposition 1.
- $\root n \of {\prod_{i=1}^n X_i} \leq
- {1 \over n} \sum_{i=1}^n X_i$ with equality if and only if $X_1=\cdots=X_n$.
- @endliteral
- \proclaim Proposition 1.
- $\root n \of {\prod_{i=1}^n X_i} \leq
- {1 \over n} \sum_{i=1}^n X_i$ with equality if and only if $X_1=\cdots=X_n$.
-
- \vskip \baselineskip \hrule
-
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $$ I_4 = \pmatrix{
- 1 &0 &0 &0 \cr
- 0 &1 &0 &0 \cr
- 0 &0 &1 &0 \cr
- 0 &0 &0 &1 \cr}$$
- @endliteral
- $$ I_4 = \pmatrix{
- 1 &0 &0 &0 \cr
- 0 &1 &0 &0 \cr
- 0 &0 &1 &0 \cr
- 0 &0 &0 &1 \cr}$$
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- $$ |x| = \left\{ \matrix{
- x & x \ge 0 \cr
- -x & x \le 0 \cr} \right.$$
- @endliteral
- $$ |x| = \left\{ \matrix{
- x & x \ge 0 \cr
- -x & x \le 0 \cr} \right.$$
- \vskip \baselineskip \hrule
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \settabs \+ \hskip 2 in & \hskip .75in & \hskip 1cm& \cr
- \+ &Plums &\hfill\$1&.22 \cr
- \+ &Coffee &\hfill1&.78 \cr
- \+ &Granola &\hfill1&.98 \cr
- \+ &Mushrooms & &.63 \cr
- \+ &{Kiwi fruit} & &.39 \cr
- \+ &{Orange juice} &\hfill1&.09 \cr
- \+ &Tuna &\hfill1&.29 \cr
- \+ &Zucchini & &.64 \cr
- \+ &Grapes &\hfill1&.69 \cr
- \+ &{Smoked beef} & &.75 \cr
- \+ &Broccoli &\hfill\underbar{\ \ 1}&\underbar{.09} \cr
- \+ &Total &\hfill \$12&.55 \cr
- @endliteral
- \settabs \+ \hskip 2 in & \hskip .75in & \hskip 1cm& \cr
- \+ &Plums &\hfill\$1&.22 \cr
- \+ &Coffee &\hfill1&.78 \cr
- \+ &Granola &\hfill1&.98 \cr
- \+ &Mushrooms & &.63 \cr
- \+ &{Kiwi fruit} & &.39 \cr
- \+ &{Orange juice} &\hfill1&.09 \cr
- \+ &Tuna &\hfill1&.29 \cr
- \+ &Zucchini & &.64 \cr
- \+ &Grapes &\hfill1&.69 \cr
- \+ &{Smoked beef} & &.75 \cr
- \+ &Broccoli &\hfill\underbar{\ \ 1}&\underbar{.09} \cr
- \+ &Total &\hfill \$12&.55 \cr
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \settabs \+ \hskip 4.5 in & \cr
- \+Getting Started \dotfill &1 \cr
- \+All Characters Great and Small \dotfill &9 \cr
- @endliteral
- \settabs \+ \hskip 4.5 in & \cr
- \+Getting Started \dotfill &1 \cr
- \+All Characters Great and Small \dotfill &9 \cr
- \vskip \baselineskip \hrule
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \settabs \+ \hskip 1cm&\hskip 1 cm&\hskip 1 cm& \cr
- \moveright 2 in
- \vbox{
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- }
- @endliteral
- \settabs \+ \hskip 1cm&\hskip 1 cm&\hskip 1 cm& \cr
- \moveright 2 in
- \vbox{
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- \+ \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
- & \vrule height 1 cm \cr
- \hrule width 3 cm
- }
- \vskip \baselineskip \hrule
-
-
- \goodbreak \vskip 2pt \hrule
- \beginliteral
- \def\boxtext#1{%
- \vbox{%
- \hrule
- \hbox{\strut \vrule{} #1 \vrule}%
- \hrule
- }%
- }
- \moveright 2 in \vbox{\offinterlineskip
- \hbox{\boxtext{6}\boxtext{1}\boxtext {8}}
- \hbox{\boxtext{7}\boxtext{5}\boxtext{3}}
- \hbox{\boxtext{2}\boxtext{9}\boxtext{4}}
- }
- @endliteral
- \def\boxtext#1{%
- \vbox{%
- \hrule
- \hbox{\strut \vrule{} #1 \vrule}%
- \hrule
- }%
- }
- \moveright 2 in \vbox{\offinterlineskip
- \hbox{\boxtext 6\boxtext 1\boxtext 8}
- \hbox{\boxtext 7\boxtext 5\boxtext 3}
- \hbox{\boxtext 2\boxtext 9\boxtext 4}
- }
- \vskip \baselineskip \hrule
-
-
- \vfill
- \datestamp
-
- \bye
-